Sử dụng JOIN
trong DELETE
tuyên bố.
DELETE p, pa
FROM pets p
JOIN pets_activities pa ON pa.id = p.pet_id
WHERE p.order > :order
AND p.pet_id = :pet_id
Ngoài ra, bạn có thể sử dụng ...
DELETE pa
FROM pets_activities pa
JOIN pets p ON pa.id = p.pet_id
WHERE p.order > :order
AND p.pet_id = :pet_id
... để chỉ xóa khỏi pets_activities
Xem điều này .
Đối với việc xóa bảng đơn lẻ, nhưng với tính toàn vẹn tham chiếu, có những cách khác để thực hiện với EXISTS
, NOT EXISTS
, IN
, NOT IN
và v.v. Nhưng ở trên, nơi bạn chỉ định xóa bảng nào bằng bí danh trước FROM
điều khoản có thể giúp bạn thoát khỏi một số điểm khá chặt chẽ dễ dàng hơn. Tôi có xu hướng liên hệ với một EXISTS
trong 99% các trường hợp và sau đó có 1% trong đó cú pháp MySQL này sử dụng trong ngày.