您的位置:首页 > 其它

INNER/LEFT/RIGHT JOIN ON与WHERE的区别

2018-07-08 13:12 471 查看
1.LEFT或RIGHT JOIN ON后面的过滤条件即使不成立也会返回左表或右表的全部记录,如果要过滤掉不符合条件的数据,则要把过滤条件放在WHERE后面。

tab1:



tab2:



过滤条件在ON后面:



过滤条件在WHERE后面:



结果是不同的

2.INNER JOIN ON后面的过滤条件也可以放在WHERE后面,效果相同。

过滤条件在ON后面:



过滤条件在WHERE后面:



结果相同

总结:对于LEFT/RIGHT JOIN参与的表的关联操作,如果需要不满足连接条件的行也在查询范围内的话,就把连接条件放在ON后面,而不能放在WHERE后面,如果把连接条件放在了WHERE后面,那么所有的LEFT/RIGHT操作将不起任何作用,对于这种情况,它的效果就完全等同于INNER连接。对于那些不影响选择行的条件,放在ON或者WHERE后面就可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: