Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / delete from t_a a where not exists (select * from t_b b where b.aid = a.aid) -- как? / 2 сообщений из 2, страница 1 из 1
25.04.2004, 21:09
    #32495879
Vladimir Dozen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delete from t_a a where not exists (select * from t_b b where b.aid = a.aid) -- как?
MySQL 4.0.2. подзапросы не держит.

нужно грохнуть в одной из таблиц записи, на которые нет
ссылок в другой таблице. как сделать это одним запросом?

delete from t_a a where not exists (select * from t_b b where b.aid = a.aid)
не работает, поскольку это как раз подзапрос (я так это понимаю; сообщение об ошибке весьма невнятное -- "синтаксическая ошибка где-то в районе первого where" --- ??? )
...
Рейтинг: 0 / 0
26.04.2004, 08:34
    #32496043
Marat_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
delete from t_a a where not exists (select * from t_b b where b.aid = a.aid) -- как?
На чистом SQL без вложенных запросов это к сожалению невозможно.
Можно стандартно вывернуться используя процедурный язык.

Пример на PHP

Код: plaintext
1.
2.
3.
4.
$result = mysql_query( "select aid from t_b" );
while($row = mysql_fetch_array($result)) {
    $st=( $st= "" ? "  " : $st." , ").$row[aid];
}
mysql_query(" delete from t_a a where aid not in ( ".$st." )");


Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / delete from t_a a where not exists (select * from t_b b where b.aid = a.aid) -- как? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]