|
|
|
| Здравствуйте, уважаемые коллеги!
Есть MySQL база с двумя таблицами, тупо связанными внешним ключом.
Интересуют записи первой таблицы, у которых отсутствуют записи второй таблицы.
Вот так их можно посмотреть:
SELECT f.id, s.id FROM first f LEFT JOIN second s ON s.id = s.first_id WHERE ISNULL(s.id);
А вот как их удалить??? | |
|
|
|
|
|
|
|
для: oldman
(15.09.2007 в 08:34)
| | А вот так их можно удалить:
DELETE FROM first_table
WHERE ID IN (SELECT f.ID
FROM first_table f LEFT JOIN second_table s
ON (f.ID = s.ID)
WHERE s.ID IS NULL);
|
| |
|
|
|
|
|
|
|
для: oradev
(15.09.2007 в 17:11)
| | Ы-ы-ы... :(
А начиная с какой версии MySQL умеет вложенные запросы?
У меня (версия 4.1.15) вот так обламывается:
mysql> DELETE FROM first_table WHERE id IN (SELECT id FROM first_table WHERE id = '20');
ERROR 1093 (HY000): You can't specify target table 'first_table' for update in FROM clause
Хотя вот так проходит:
mysql> DELETE FROM first_table WHERE id IN ('20');
Query OK, 1 row affected (0.00 sec) | |
|
|
|