如何用 SELECT 查询的结果覆盖整个表?(MySQL)

zez*_*eze 1 mysql sql select overwrite sql-insert

通过以下查询,我创建一个表,该表是两个现有表左连接的结果:

CREATE TABLE meal_reservations
SELECT 
    meal.id, 
    meal.max_reservations, 
    SUM(IFNULL(reservation.number_of_guests, 0)) AS reservations
FROM meal
LEFT OUTER JOIN reservation 
ON meal.id = reservation.meal_id
GROUP BY meal.id;
Run Code Online (Sandbox Code Playgroud)

我希望能够SELECT在需要时使用相同的查询更新其值。

我尝试过REPLACE INTO,但这只是将新结果附加到现有行上。

GMB*_*GMB 5

截断表然后用语句重新填充它怎么样insert ... select ...?这是我能想到的最简单的方法。否则,您将需要准确定义如何管理增量,这可能会很乏味。

-- empty the table
truncate table meal_reservations;

-- fill it again
insert into meal_reservations
SELECT 
    meal.id, 
    meal.max_reservations, 
    SUM(IFNULL(reservation.number_of_guests, 0)) AS reservations
FROM meal
LEFT OUTER JOIN reservation 
ON meal.id = reservation.meal_id
GROUP BY meal.id;
Run Code Online (Sandbox Code Playgroud)