【发布时间】:2020-01-22 12:03:05
【问题描述】:
尝试获取 SQL LEFT JOIN 以在另一个表中没有相应行的情况下返回 NULL。
表 1 - T1
id n
1 aaa
2 bbb
3 ccc
表 2 - T2
t1_id t3_id
1 1
2 1
3 1
1 2
3 2
2 3
3 3
在 T2 中,注意没有 2 - 2 或 1 - 3 的组合。
select *
from t1
left join t2
on t1.id = t2.t1_id
order by t2.t3_id, t1_id
输出:
id n t1_id t3_id
1 aaa 1 1
2 bbb 2 1
3 ccc 3 1
1 aaa 1 2
3 ccc 3 2
2 bbb 2 3
3 ccc 3 3
我原以为会有另外两行
1 aaa null null
2 bbb null null
...对应于前面提到的 T2 中缺失的组合。
注意 ORDER BY 只是为了方便 - 它对返回的行没有影响。
请帮助我了解为什么会发生这种情况,以及如何解决它。
【问题讨论】:
标签: sql tsql left-join sql-null