sql 中 on 和 wher e的区别
我们在查询一条语句时候,会返回我们一张临时表,最终将这张临时表返回给我们
以left join 为例:
on:如果将连接条件写到on中,无论你的条件语句是否为真,结果都会返回左表中的全部内容,右表中没有的话则值为NAN
where:会对生成的临时表再进行筛选过滤,此时已经没有left join 的含义(返回左表的全部内容),所以where条件不为真的内容就会被过滤掉
注意:若果是where对右面表的进行过滤,那么左表中的内容还是会全部输出
sql 中 on 和 wher e的区别
我们在查询一条语句时候,会返回我们一张临时表,最终将这张临时表返回给我们
以left join 为例:
on:如果将连接条件写到on中,无论你的条件语句是否为真,结果都会返回左表中的全部内容,右表中没有的话则值为NAN
where:会对生成的临时表再进行筛选过滤,此时已经没有left join 的含义(返回左表的全部内容),所以where条件不为真的内容就会被过滤掉
注意:若果是where对右面表的进行过滤,那么左表中的内容还是会全部输出