Задавайте вопросы, мы ответим
Вы не зашли.
К примеру, есть две связанные таблицы "марки" и "модели":
mark (id_mark)
model (id_model, id_mark)
Модель ссылается на марку. Допустим, при удалении записей из таблицы mark не удалили связанные записи в таблице model.
Можно ли составить одиночный запрос для удаления записей из таблицы model, которые больше не связаны с mark?
Пытался вот как:
DELETE FROM model WHERE model.id_mark IN
(SELECT model.id_mark
FROM model LEFT JOIN mark ON model.id_mark=mark.id_mark
WHERE mark.id_mark IS NULL)
Но так mysql ругается.
Спасибо.
Неактивен
может так?
DELETE model FROM model LEFT JOIN mark ON model.id_mark = mark.id_mark WHERE mark.id_mark IS NULL
только сналача вместо DELETE model FROM напишите SELECT model.* FROM и убедитесь что выбираются нужные записи (которые будут удалены)
Неактивен
Вы правы. Сразу пробывал так, только вот не указал "что" удалять:
DELETE FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;
вместо
DELETE t1 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;
Спасибо.
Неактивен