Как удалить записи в MySQL

Self Author

Новичок
Как удалить записи в MySQL

Есть две таблицы в MySQL в первой есть записи, одно поле которых ссылается на индекс другой таблицы. Во второй некоторые записи были удалены. Необходимо удалить все записи в первой, которые ссылаются на несуществующие во второй.
Посмотреть их я могу так:
[SQL]SELECT Table1.* FROM `Table1` LEFT JOIN `Table2` ON Table1.id2 = Table2.id WHERE Table2.somefield IS NULL[/SQL]
А вот как их теперь удалить? Если я вместо SELECT делаю DELETE, то мускул ругается.
 

alexhemp

Новичок
Self Author

Выбери все такие записи ОТДЕЛЬНЫМ ЗАПРСОМ и подставь в условие DELETE.

Документацию читал?
http://dev.mysql.com/doc/refman/4.1/en/delete.html

Там написано что мультитабличный DELETE появился с 4.0, если посмотреть синтаксис, то JOIN там и не пахло.

Напиши что-нить вроде

DELETE FROM Table1 USING `Table2`WHERE Table1.id2 = Table2.id AND Table2.somefield IS NULL

Но это только для MySQL 4.0.2 и выше (впрочем более старые версии уже анахронизм).
 

Self Author

Новичок
Всё понятно. У меня как раз старая версия: 3.23... :( Поэтому и не идёт...
 

alexhemp

Новичок
Тогда делай как я сказал - выбери отдельным запросом нужные записи и подставь в условие удаления.
 
Сверху