Gebruik een JOIN in de DELETE verklaring.
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
Als alternatief kunt u gebruik maken van...
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
...om alleen te verwijderen van pets_activities
Zie dit .
Voor het verwijderen van één tabel, maar met referentiële integriteit, zijn er andere manieren om te doen met EXISTS , NOT EXISTS , IN , NOT IN en etc. Maar degene hierboven waar je specificeert uit welke tabellen je wilt verwijderen met een alias voor de FROM clausule kan je gemakkelijker uit een paar behoorlijk krappe plekken halen. Ik heb de neiging om contact op te nemen met een EXISTS in 99% van de gevallen en dan is er nog de 1% waar deze MySQL-syntaxis de dag duurt.