如何使用外连接选择行

时间:2014-04-14 08:39:56

标签: sql join left-join outer-join

我有两个单列的A1和A2表。

A    B
-    -
1    3
2    4
3    5
4    6

我需要从A中选择不在B中的记录。为此,我尝试select A from [A1] as a left outer join A2 as c on a.[A]=c.[B],但它多次选择12,我只想要独特的结果, want 1 and 2 only。引用了少量链接Outer join,但无法完全理解。我知道这是一个愚蠢的问题,但我是新的加入。

2 个答案:

答案 0 :(得分:1)

not in如果与Distinct结合使用,那么您就没有获得任何重复

select Distinct A
from A1
where A not in (select B from A2)

答案 1 :(得分:0)

您的问题中的SQL请求通常应该给出1,2,3,4作为结果,下图显示了不同联接的工作方式:
enter image description here

因此,如果您只想显示A中但不包含在B中的记录,则为:

SELECT distinct A from A1 a LEFT JOIN B1 b   
ON a.A = b.B  
WHERE b.B is NULL  

以下picture解释了有关不同联接及其SQL语法实现的更多信息:
enter image description here