2015-11-06 37 views
0

我正在尋找一種方法來從一個表中選擇不在其他表中出現的所有值。這需要在兩個變量上完成,而不是一個。配置單元:不在子查詢中加入

select * from tb1 
where tb1.id1 not in (select id1 from tb2) 
and tb1.id2 not in (select id2 from tb2) 

我無法使用子查詢。它只需要使用連接來完成。

我嘗試這樣做:

select * from tb1 full join tb2 on 
tb1.id1=tb2.id1 and tb1.id2=tb2.id2 

這工作得很好,在條件一個變量,而不是兩個。 請建議一些解決方案。

回答

0

由於您希望從tb1獲取所有tb2上的列id1和id2上沒有公共數據的數據,因此您可以在表tb1上使用左外連接。類似於

SELECT tb1.* FROM tb1 LEFT OUTER JOIN tb2 ON 
(tb1.id1=tb2.id1 AND tb1.id2=tb2.id2) 
WHERE tb2.id1 IS NULL