如何从另一个表中不存在列的表中进行选择

时间:2016-04-06 09:12:05

标签: mysql

表A

id    city  
1    koronadal  
2    cebu  
3    manila  

表B

id    city   
1    cebu  

预期的输出:

id    city
1    koronadal  
3    manila  

这是我的问题:

 Select a.id, a.city from tablea a left join tableb b on a.city = b.city

我得错了输出..请帮帮我..

1 个答案:

答案 0 :(得分:0)

你是正确的方式!现在你只需要过滤那些匹配的人:

Select a.id, a.city
from tablea a
left join tableb b 
 on a.city = b.city
WHERE b.id is null

LEFT JOINING中,当连接条件不匹配时,左表(在本例中为tableA)仍将被选中,右表中的所有数据(在本例中为tableB)将为{{1 }。所以你需要做的就是在B表上搜索空值。

另一种方法是使用NULL

IN()

另一种方式是SELECT * FROM TableA a WHERE a.city NOT IN(SELECT city FROM TableB)

EXISTS()