小编Gre*_*ter的帖子

T-SQL - 左外连接 - where子句与on子句中的过滤器

我试图比较两个表,以找到每个表中不在另一个表中的行.表1有一个groupby列,用于在表1中创建2组数据.

groupby     number
----------- -----------
1           1
1           2
2           1
2           2
2           4
Run Code Online (Sandbox Code Playgroud)

表2只有一列.

number
-----------
1
3
4
Run Code Online (Sandbox Code Playgroud)

因此,表1在组2中具有值1,2,4,而表2具有值1,3,4.

加入第2组时,我希望得到以下结果:

`Table 1 LEFT OUTER Join Table 2`
T1_Groupby  T1_Number   T2_Number
----------- ----------- -----------
2           2           NULL

`Table 2 LEFT OUTER Join Table 1`
T1_Groupby  T1_Number   T2_Number
----------- ----------- -----------
NULL        NULL        3
Run Code Online (Sandbox Code Playgroud)

我可以让它工作的唯一方法是,如果我为第一个连接放置一个where子句:

PRINT 'Table 1 LEFT OUTER Join Table 2, with WHERE clause'
select  table1.groupby as [T1_Groupby],
        table1.number as [T1_Number],
        table2.number as [T2_Number]
from    table1
        LEFT …
Run Code Online (Sandbox Code Playgroud)

sql left-join

6
推荐指数
2
解决办法
3万
查看次数

标签 统计

left-join ×1

sql ×1