Исключить данные из запроса

 
0
 
Oracle
ava
Anime | 20.04.2016, 14:23
Тестовые данные

CREATE TABLE A_DATA_TEST
(
    ID VARCHAR2(20 BYTE),
    NAME VARCHAR2(20 BYTE),
    KOD1 VARCHAR2(20 BYTE),
    KOD2 VARCHAR2(20 BYTE) 
);

Insert into A_DATA_TEST (ID,NAME,KOD1,KOD2) values ('1','world','100','900');
Insert into A_DATA_TEST (ID,NAME,KOD1,KOD2) values ('2','hello','900','100');
Insert into A_DATA_TEST (ID,NAME,KOD1,KOD2) values ('3','bey','900','800');
Insert into A_DATA_TEST (ID,NAME,KOD1,KOD2) values ('4','world','100','900');
Insert into A_DATA_TEST (ID,NAME,KOD1,KOD2) values ('5','what','300','100');

CREATE TABLE A_SPRAV_TEST (    
    KOD VARCHAR2(20 BYTE)
);

Insert into A_SPRAV_TEST (KOD) values ('100');
Insert into A_SPRAV_TEST (KOD) values ('200');
Insert into A_SPRAV_TEST (KOD) values ('300');
Insert into A_SPRAV_TEST (KOD) values ('400');
Insert into A_SPRAV_TEST (KOD) values ('500');
 

Запрос

select * from a_data_test
where exists (select 1 from a_sprav_test where kod in (kod1, kod2))


Вывод

ID    NAME        KOD1 KOD2
1    world    100      900
2    hello            900      100
4    world    100      900
5    what            300      100


Как можно исключить записи если KOD1 и KOD2 присутствует в таблице A_SPRAV_TEST.
Должно (без записи ID=5, эти коды(kod1, kod2) есть в справочнике )

ID    NAME        KOD1 KOD2
1    world    100      900
2    hello            900      100
4    world    100      900
Comments (2)
ava
Akina | 20.04.2016, 14:42 #

FROM A_DATA_TEST t1
LEFT JOIN A_SPRAV_TEST t2 ON t1.KOD1 = t2.KOD
LEFT JOIN A_SPRAV_TEST t3 ON t1.KOD2 = t3.KOD
WHERE COALESCE(t2.KOD, t3.KOD) IS NULL
 smile 
ava
LSD | 21.04.2016, 11:59 #

M
LSD
Необходимо указывать СУБД(и, желательно, версию), чтоб не были даны ответы, которые для Вашей СУБД будут просто неприменимы.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
ava  LSD   Akina   Anime
advanced
Submit