Mysql Left Join Where On

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql Left Join Where On相关的知识,希望对你有一定的参考价值。

  



select t1.id,t2.id
from t1
left join t2 on t1.id = t2.id and t1.id>1 and t2.id<>3
mysql的left join中条件放在on后面和在where后面是不同的;

1. on后面只针对于t2表进行过滤,所以上面的t1.id>1将不起作用,切记,切记;

2. where后面会对最终结果产生影响,所以如果t2.id<>3放到on后面和where后面也是会返回不同的结果;

例如下面脚本一会比脚本二多返回一些数据。

select * from test2
left join test1 on test2.id = test1.id and test1.id<>3
where test2.id <>6;
select * from test2
left join test1 on test2.id = test1.id
where test2.id <>6 and test1.id<>3;

以上是关于Mysql Left Join Where On的主要内容,如果未能解决你的问题,请参考以下文章

mysql查询,left join(求并集),where(求交集)

在 WHERE 子句中使用连接列时,Mysql 未在 LEFT JOIN 中使用索引

MySQL LEFT JOIN 或 WHERE IN SUBQUERY

mysql的left join使用on与where筛选的差异

为啥 MySQL LEFT JOIN 不返回所有行,除非有 WHERE 子句 - phpMyAdmin 问题

mysql left join中where和on条件的区别