Ele*_*nor 3 sql null left-join
我有一个关于使用空值键连接的问题。
假设我有一张桌子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
Run Code Online (Sandbox Code Playgroud)
我还有另一张桌子m在右边。( t.sub_id = m.id)
id feature
1 9
2 8
3 2
4 1
5 4
6 2
7 null
Run Code Online (Sandbox Code Playgroud)
现在我想用
select * from t left join m on t.sub_id = m.id
Run Code Online (Sandbox Code Playgroud)
它会返回什么结果?是Null在左键值影响的结果?我希望所有null左键行都不显示在我的结果中。
谢谢!
Gor*_*off 10
Aleft join很简单。当on子句评估为“真”时,它将保留第一个(左)表中的所有行以及第二个(右)表中的所有行。
当on子句的计算结果为 "false" or 时NULL,left join仍将第一个表中的所有行保留NULL为第二个表的值。
如果任一sub_id或者id是NULL,那么你的on子句的值为NULL,所以它保持在第一个表中的所有行与NULL占位符在第二列。