Sql左键加入空值的左键

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 时NULLleft join仍将第一个表中的所有行保留NULL为第二个表的值。

如果任一sub_id或者idNULL,那么你的on子句的值为NULL,所以它保持在第一个表中的所有行与NULL占位符在第二列。