sql >> Database >  >> RDS >> Mysql

Hoe te verwijderen uit meerdere tabellen in MySQL?

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.



  1. Retourneer de huidige werkstationnaam die is verbonden met SQL Server (T-SQL)

  2. Gebruikersaccountbeheer, rollen, machtigingen, authenticatie PHP en MySQL

  3. ScaleGrid op shortlist voor 2017-2018 Cloud Awards-programma

  4. hoe een .sql-script op Heroku uit te voeren?