我有一个关于使用空值键加入的问题。
假设我有一张桌子 t
,它将在左侧。 ( id
是主键, sub_id
是加入右表的键。)
id sub_id value
1 3 23
2 3 234
3 2 245
4 1 12
5 null 948
6 2 45
7 null 12
我还有另一张桌子 m
在右边。 ( t.sub_id = m.id
)
id feature
1 9
2 8
3 2
4 1
5 4
6 2
7 null
现在我想用
select * from t left join m on t.sub_id = m.id
它会返回什么结果? Null
的值会影响结果吗?我希望所有 null
左键行不显示在我的结果中。
谢谢!
原文由 Eleanor 发布,翻译遵循 CC BY-SA 4.0 许可协议
left join
非常简单。当on
子句评估为“真”时,它会保留第一个(左)表中的所有行以及第二个(右)表中的所有行。When the
on
clause evaluates to “false” orNULL
, theleft join
still keeps all rows in the first table withNULL
values for第二张桌子。If either
sub_id
orid
isNULL
, then youron
clause evaluates toNULL
, so it keeps all第一个表中的行与NULL
第二个中的列的占位符。