![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отбор записей [D6, IB6.x]
Жук © (2003-02-25 13:15:00)День добрый !
Как одним запросом отобрать из таблицы-справочника те записи, на которые нет ссылок в основной таблице ?
Жук (2003-02-25 14:35:00) [1]2 DarkGreen
То-то же ! :-)
DarkGreen (2003-02-25 14:30:00) [2]Опс, сорри, планы разные. Да и работает лефт джоин быстрее
DarkGreen (2003-02-25 14:26:00) [3]А чем "левое" соединение лучше exists? Да и работают они в данном случае по одному плану :-)
Жук (2003-02-25 14:22:00) [4]Согласен, что "книжный", но когда в голову одни not exists"ы лезут... :-)))
Johnmen (2003-02-25 14:14:00) [5]>Жук © (25.02.03 13:54)
Не стОит, право... А то некое чувство неловкости преобладает над чувством удовлетворения...
Да и пример достаточно "книжный".
kaif (2003-02-25 13:55:00) [6]Может, еще заработает быстрее (а может и не заработает):
delete from t1 where id in (select distinct t1_id from t2)
или
delete from t1 where id in (select t1_id from t2 group by t1_id)
Жук (2003-02-25 13:54:00) [7]Спасибо всем !
2 Johnmen
Не перестаю вами восхищаться !!! :-)
kaif (2003-02-25 13:53:00) [8]А зачем их отбирать?
Если для того, чтобы удалить, то лучше всего xчто-то типа того:
delete from t1 where id in (select t1_id from t2)
:)))
Johnmen (2003-02-25 13:26:00) [9]SELECT ... FROM T1
LEFT JOIN T2 ON T1.ID=T2.ID
WHERE T2.ID IS NULL
DarkGreen (2003-02-25 13:25:00) [10]
select RT.* from Ref_Table RT
where not exists (select MT.Ref_ID from Master_Table MT where MT.Ref_ID = RT.Ref_ID)
Соловьев (2003-02-25 13:22:00) [11]
select t1.*
from table1 t1 left join table2 t2
on (t1.id = t2.id)
Соловьев (2003-02-25 13:22:00) [12]сорри
<>
Ренат (2003-02-25 13:18:00) [13]select * from t1 where a not in (select a from t2)