Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отбор записей [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)


Наверх

Титульная страница Поиск, карта сайта Написать письмо