2010-08-02 164 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)