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