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