MySql中三种Join以及Where条件的疑惑

MySQL JOIN时条件放在Where之后和On之后结果是迥然不同的

在Left Join的时候on后的左表条件不生效

Right Join的时候on后的右表条件不生效

即左或右连接的时候on后的主表条件不生效

select * from a left join b on a.id=b.id and a.name=1 and b.age=2;

 

这里只有b.age=2能生效a.name=1不生效

在Inner Join的时候on后的条件不论主表从表都能生效。

 

在left或者right join的时候如果想要获取到从表为null的数据,尽可能不要在join的结果后写where条件,对每张表先进行条件过滤然后再join,这样会得到完整的结果

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。