我有一张表格carts
和cart items
,第二个表格有第一个表格的外国密钥 。 现在我想删除所有3个月以上且没有相关 cartites
的 carts
行。 以下查询给了我正确的结果 :
SELECT *
FROM `carts` c
LEFT OUTER JOIN `cartitems` i ON ( `c`.`id` = `i`.`cart_id` )
WHERE `c`.`last_updated` < DATE_SUB(NOW() , INTERVAL 3 MONTH)
GROUP BY `c`.`id`
HAVING COUNT( `i`.`id` ) = 0;
但我不知道该如何将此查询转换为 DELETE
。
此外,由于carts
表格中有1 000万行,我非常感谢就如何改进这一查询提出建议:-)