2010-08-02 217 views
1

我想加入2個表並嘗試獲取記錄,這些記錄在第二個表的連接列中沒有值。 例如: 表1 Id列值: 1, 2, 3, 4,需要SQL幫助

表2 Id列值: 1, 3,

鑑於上述這兩個表的連接列中的值的示例,我想從table1中以id 2和4獲取記錄,因爲它們不存在於表2中。

任何幫助將不勝感激。

我的SQL已經變得鏽跡斑斑引進JPA框架,但今天我無法逃避,不知道它了,它似乎:(

謝謝!

回答

3
select t1.id 
from Table1 t1 
left outer join Table2 t2 on t1.id = t2.id 
where t2.id is null 
+0

嘿感謝這一建議會嘗試乾杯 – PaiS 2010-08-02 12:32:01

2
SELECT * FROM table1 WHERE table1.id NOT IN (SELECT id from table2) 
+0

嘿嘿,謝謝,這是非常簡單的! :),我真的需要刷我的查詢語言。 – PaiS 2010-08-02 12:29:41

+1

使用'NOT IN'子句時,請注意表2中ID列的NULL值。 – 2010-08-02 13:54:46

+0

這可能是表現可能性的表現,因爲總是測試所有看到的東西。 – HLGEM 2010-08-02 21:37:39

1

NOT EXISTS變種:。

SELECT * FROM table1 WHERE NOT EXISTS 
(SELECT NULL from table2 WHERE table2.id = table1.id)