请参阅以下两个示例表:
表1:
id acc_no name
------------------------
1 14 aaaa
2 16 bbbb
3 18 ccccc
4 25 wwww
5 27 xxxxxxx
6 28 zzzzzzz
表2:
sr no acc_no amount
----------------------
1 14 2000
2 16 2344
3 18 3200
我需要根据acc_no获取记录,这些记录在表1中不匹配,例如:
输出:
id acc_no name
---------------------
4 25 wwww
5 27 xxxxxxx
6 28 zzzzzzz
当我尝试使用以下查询时,结果不可靠:
SELECT t1.*
FROM table1 t1
LEFT OUTER JOIN table2 t2 ON t1.acc_no = t2.acc_no
WHERE t2.acc_no IS NULL
提出你的建议。什么是正确的SQL查询ti得到以上输出?
答案 0 :(得分:10)
尝试:
SELECT *
FROM table1 t1
WHERE t1.acc_no NOT IN (SELECT acc_no FROM table2)
答案 1 :(得分:6)
应该是:
select t1.id,t1.acc_no,t1.name from table1 t1
left outer join table2 t2 on t1.acc_no = t2.acc_no
where
t2.id is null
答案 2 :(得分:1)
也尝试这个:
select t1.* from table1 t1 where
not exists (
select 1 from table2 t2
where t1.acc_no=t2.acc_no
)