테이블 carts
및 이 있으며 두 번째 테이블에는 외래 키가 있습니다. 이제 carts
에서 3 개월 이상이고 관련이없는 모든 행을 삭제하고 싶습니다. cartitems
다음 쿼리는 나에게 정확한 결과 제공 :JOIN, GROUP BY 및 HAVING이있는 테이블에서 삭제
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
테이블 ~ 1000 만 개 행이 있기 때문에, 나는 쿼리가 작동합니다 존재
내가이 오류 메시지가 : "# 1093 - 당신은 목표 테이블 '카트'를 지정할 수 없습니다 업데이트 FROM 절에" –
@BenjaminWohlwend는'보기를 carts'입니까? 아니면 관련된 테이블에 트리거가 있습니까? – rekire
아니요, 관련된 두 테이블 모두 MyISAM 테이블입니다. –