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,这样会得到完整的结果
时间: 2024-10-07 05:06:32