Удаление записей из нескольких связанных таблиц (MySQL)

Раздел SQL. Форум в помощь для тех кто начинает осваивать SQL. Работа с phpMyAdmin.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Удаление записей из нескольких связанных таблиц (MySQL)

Сообщение Slash » Пт ноя 13, 2015 10:27 pm

Здравствуйте.
Хочу показать вам пример запроса, который удалит записи из нескольких, связанных таблиц. Я делаю это при помощи LEFT JOIN, вот так:

Код: Выделить всё

DELETE table1, table2, table3
FROM table1
   LEFT JOIN table2 ON table1.id = table2.id          
      LEFT JOIN table3 ON table1.id = table3.id      
WHERE id = "' . $id . '"

Тут получается, что необходимо удалить запись из таблицы table1, по какому то id, такой же id имеют ещё записи, в двух таблицах, и они взаимосвязаны с первой таблицей.

У меня как то была задача удалить из нескольких таблиц записи, при чем в одной из связанной таблицы (например table2) надо было удалять запись не тока по id, но ещё по одному параметру, делал я это так:

Код: Выделить всё

DELETE table1, table2, table3
FROM table1
   LEFT JOIN table2 ON table1.id = table2.id
        AND "' . subject . '" = table2.subject   
      LEFT JOIN table3 ON table1.id = table3.id      
WHERE id = "' . $id . '"

То есть я к таблице table2 добавил AND и запрос теперь ищет и удаляет запись в этой таблице по id и subject.

Спасибо за внимание.
Реклама

Вернуться в «MySQLi»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость