![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL запросик [D6, IB6.x]
AndbyOne © (2002-08-22 10:19:00)Есть 2 таблицы:
PERS: и PERSLOG:
BKEY SDATETIME
RKEY BKEY
PKEY RKEY
PKEY
Мне надо отобрать те записи из PERS, которых нет в PERSLOG, т.е. те PERS.BKEY которых нет в PERSLOG.BKEY;
Я делаю, так:
SELECT
DISTINCT PERS.*
FROM
PERSLOG,
PERS
WHERE PERS.BRIGADEKEY != PERSLOG.BRIGADEKEY
ORDER BY PERS.BRIGADEKEY
и он отбирает все записи, вообще все. ЧТо делать?
Desdechado (2002-08-22 10:29:00) [1]учить матчасть!
У тебя для каждой записи из PERS выбираются все записи из PERSLOG, у которых ключ не совпал. Потом применяется DISTINCT, т.е. получается по одной такой записи. Итог - все записи из PERSLOG
select P.* from Pers P
where not exists( SELECT L.sdatetime FROM Perslog L
WHERE L.bkey = P.bkey)
или ХП
SaS13 (2002-08-22 10:23:00) [2]SELECT DISTINCT *
FROM PERS
WHERE BRIGADEKEY NOT IN (SELECT BRIGADEKEY FROM PERSLOG)
ORDER BY BRIGADEKEY