Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да изтрия от множество таблици в MySQL?

Използвайте JOIN в DELETE изявление.

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 синтаксис отнема деня.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обяснение на MySQL High Availability Framework – Част II:Полусинхронна репликация

  2. Как да изтрия от множество таблици в MySQL?

  3. java.sql.SQLException:Не е намерен подходящ драйвер за jdbc:mysql://localhost:3306/dbname

  4. Въпросителни знаци на MySQL db вместо знаци на иврит..?

  5. Как да вмъкнете няколко реда в една SQL заявка – въпрос за интервю на седмицата #069