在使用left jion时,on和where条件的区别如下:

在使用left jion时,on和where条件的区别如下:

①on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录;

②where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,
条件不为真的就全部过滤掉;

总结:就是你在on后面追加过滤条件,没什么用,不管左边表是否符合过滤条件,都会显示出左边表的内容;


select *
from t1 ta
LEFT JOIN t2 tb on ta.id = tb.id and ta.id = 3;

-- and ta.id = 3;
-- 解释说明  and ta.id = 3;加上这个条件对ta.*输出的内容,没有变化。

猜你喜欢

转载自blog.csdn.net/weixin_54217632/article/details/120532840