我的TableA和TableB包含相同的列,但它们具有不同的记录。
如何找出" UniqueID"不是在TableA中,而是在TableB中?
我一直在做
select tc.uniqueid, td.uniqueid
from tab1c as tc
left join tab2c as td
where tc.uniqueid != td.uniqueid;
但它似乎不正确。
答案 0 :(得分:2)
使用左连接:
select tc.uniqueid, td.uniqueid
from tab1c as tc
left join tab2c as td
on tc.uniqueid = td.uniqueid
where td.uniqueid = NULL; --Will get all uid in tab1c and not in tab2c
同样有效且更易读的方式是NOT EXISTS
:
select tc.uniqueid
from tab1c as tc
WHERE NOT EXISTS (SELECT * FROM tab2c as td
WHERE tc.uniqueid = td.uniqueid)
答案 1 :(得分:1)
以下查询将找到tableA
中没有的所有唯一IDSELECT UNIQUEID FROM TABLEB WHERE UNIQUEID NOT IN (SELECT DISTINCT UNIQUEID FROM TABLEA);
答案 2 :(得分:1)
也许不是最有效的方式,但您可以使用EXCEPT
SELECT UNIQUEID
FROM tab1c
EXCEPT
SELECT UNIQUEID
FROM tab2c