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

Раздел SQL. Форум в помощь для тех кто начинает осваивать SQL. Работа с phpMyAdmin.
Аватара пользователя
Slash
Администратор
Сообщения: 2122
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 75 раз

Удаление записей из нескольких связанных таблиц (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.

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

Реклама

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

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