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

How to overwrite an entire table with the result of a SELECT query? (MySQL)

通过以下查询,我创建了一个 table,它是两个现有 table 左联接的结果:

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;

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

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

如何截断 table 然后用 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;