Mysql Left Join Where On
程序员文章站
2022-05-29 18:23:54
...
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.id1 将不起作用,切记,切记; 2. where后面会对最终结果产
select t1.id,t2.id
from t1
left join t2 on t1.id = t2.id and t1.id>1 and t2.id3
在mysql的left join中条件放在on后面和在where后面是不同的;
1. on后面只针对于t2表进行过滤,所以上面的t1.id>1将不起作用,切记,切记;
2. where后面会对最终结果产生影响,所以如果t2.id3放到on后面和where后面也是会返回不同的结果;
例如下面脚本一会比脚本二多返回一些数据。
select * from test2
left join test1 on test2.id = test1.id and test1.id3
where test2.id 6;
select * from test2
left join test1 on test2.id = test1.id
where test2.id 6 and test1.id3;
推荐阅读
-
精确度分析MySQL数据库中优化WHERE子句_MySQL
-
联表查询注意谁是驱动表&你搞不清楚谁join谁更好时请放_MySQL
-
ThinkPHP采用原生query实现关联查询left join实例
-
Left Join
-
MySQL 中 Join 的基本实现原理
-
是多个Ajax请求更消耗服务端性能,还是服务端Mysql Join更消耗性能?
-
MySQL where 条件替换疑问?
-
Mysql中where、group by、having、Order by和limit五种子句使用介绍
-
MySQL 8.0.18 Hash Join不支持left/right join左右连接问题
-
MySQL 8.0 新特性之哈希连接(Hash Join)