Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak usunąć z wielu tabel w MySQL?

Użyj JOIN w DELETE oświadczenie.

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

Alternatywnie możesz użyć...

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

...usunąć tylko z pets_activities

Zobacz to .

W przypadku usuwania pojedynczych tabel, ale z integralnością referencyjną, istnieją inne sposoby wykonania z EXISTS , NOT EXISTS , IN , NOT IN itp. Ale ten powyżej, w którym określasz, z których tabel chcesz usunąć, za pomocą aliasu przed FROM klauzula może łatwiej wydostać się z kilku dość ciasnych sytuacji. Mam tendencję do kontaktu z EXISTS w 99% przypadków, a w 1% przypadków ta składnia MySQL zajmuje cały dzień.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak tworzyć relacje w MySQL

  2. Użycie if(isset($_POST['submit'])) do niewyświetlania echa, gdy skrypt jest otwarty, nie działa

  3. Jak uzyskać aktualny numer sekwencji Auto_Increment dla tabeli MySQL / MariaDB?

  4. Przykłady relacji wiele-do-wielu

  5. Jakie są różnice między INSERT i UPDATE w MySQL?