Получить все результаты из таблицы, в которой нет этой комбинации в другой таблице. - PullRequest
1 голос
/ 17 ноября 2011

У меня есть две таблицы на Oracle.Скажите:

table1:
id    varchar2,
name  varchar2,
phone number,
age   number,
a     varchar2,
b     varchar2,
c     varchar2

table2:
z varchar2,
a varchar2,
b varchar2,
c varchar2

Я должен получить все результаты от table 1, которые не
имеют комбинацию a, b, c на table 2.

Как я могу это сделать?

Ответы [ 3 ]

4 голосов
/ 17 ноября 2011

Не уверен, если вы хотите это:

SELECT *
FROM table1 t1
LEFT JOIN table2 t2 ON t1.a=t2.a AND t1.b=t2.b AND t1.c=t2.c
WHERE t2.z IS NULL
4 голосов
/ 17 ноября 2011

Звучит так, как будто вы хотите NOT EXISTS

SELECT *
  FROM table1 t1
 WHERE NOT EXISTS (
    SELECT 1
      FROM table2 t2
     WHERE t1.a = t2.a
       AND t1.b = t2.b
       AND t1.c = t2.c )
3 голосов
/ 17 ноября 2011

Вы можете использовать предложение существующие .

Select *
from table1 t1
where not exists
 (select * from table2 t2
  where t1.a = t2.a
  and t1.b = t2.b
  and t1.c = t2.c)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...