我有一个查询,其中列出了所有预订,其状态为90天以后的提醒电子邮件
我想要一个将状态1更改为0的更新查询 我从没有运气的更新查询开始
这是给我我要更新的列表的查询
SELECT *
FROM ts_booking_bookings b
JOIN ts_booking_bookings_slots s
ON b.id = s.booking_id
WHERE b.reminder_email = 1
AND s.booking_date > NOW()
AND s.booking_date < DATE_ADD(NOW(), INTERVAL 90 DAY);
这是我的UPDATE查询,给我一个错误
UPDATE ts_booking_bookings b
set reminder_email = 0
where id in (
SELECT b.id
FROM ts_booking_bookings b
JOIN ts_booking_bookings_slots s
ON b.id = s.booking_id
WHERE b.reminder_email =
AND s.booking_date > NOW()
AND s.booking_date < DATE_ADD(NOW(), INTERVAL 90 DAY))
错误
答案 0 :(得分:1)
您只需要对当前的工作联接选择语法进行一些修改:
UPDATE ts_booking_bookings tsb
INNER JOIN ts_booking_bookings_slots tsbs
ON tsb.id = tsbs.booking_id
SET
tsb.reminder_email = 0
WHERE
tsb.reminder_email = 1 AND
tsbs.booking_date > NOW() AND
tsbs.booking_date < DATE_ADD(NOW(), INTERVAL 90 DAY);