Удаление записей из нескольких связанных таблиц (MySQLi)
20:43 29.03.2017
Здравствуйте.
Хочу показать вам пример запроса, который удалит записи из нескольких, связанных таблиц. Я делаю это при помощи LEFT JOIN, вот так:
Тут получается, что необходимо удалить запись из таблицы table1, по какому то id, такой же id имеют ещё записи, в двух таблицах, и они взаимосвязаны с первой таблицей.
У меня как то была задача удалить из нескольких таблиц записи, при чем в одной из связанной таблицы (например table2) надо было удалять запись не тока по id, но ещё по одному параметру, делал я это так:
То есть я к таблице table2 добавил AND и запрос теперь ищет и удаляет запись в этой таблице по id и subject.
Спасибо за внимание.
Хочу показать вам пример запроса, который удалит записи из нескольких, связанных таблиц. Я делаю это при помощи 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.
Спасибо за внимание.
- Жалоба