Сравнить две таблицы SQL и вернуть пропущенные идентификаторы? - PullRequest
10 голосов
/ 03 ноября 2011

У меня есть две простые таблицы: (здесь только столбец "id")

table1:

id
1
2
3
4

table2:

id
2
4

SQL-запрос должен сравнить две таблицы на предмет отсутствия идентификатора в table2 и вернуть: 1,2

есть идеи? :) TY

Ответы [ 3 ]

30 голосов
/ 03 ноября 2011

Есть несколько способов снять шкуру с этой кошки:

SELECT    table1.ID
FROM      table1
WHERE     table1.ID NOT IN(SELECT table2.ID FROM table2)

Или вы можете использовать левое внешнее соединение:

SELECT          table1.ID
FROM            table1
LEFT OUTER JOIN table2 ON table1.ID = table2.ID
WHERE           table2.ID IS NULL
2 голосов
/ 03 ноября 2011
select t1.*
from table1 t1
left outer join table2 t2 on t1.id = t2.id
where t2.id is null
1 голос
/ 03 ноября 2011

Попробуйте это:

SELECT    table1.id
FROM      table1
WHERE     table1.id NOT IN(SELECT table2.id FROM table2)
...