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
另外,您可以使用…
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
…仅从中删除 pets_activities
看到这个。
对于单表中删除,但具有参照完整性,也有与做的其他方式EXISTS
,NOT EXISTS
,IN
,NOT IN
等,但上面你来自哪里,用别名来删除该表指定前一个FROM
条款可以让你出几个漂亮的紧斑点更容易。我倾向于EXISTS
在99%的情况下使用,然后有1%的MysqL语法需要一天的时间。