Mysql Left Join Where On
时间:2016-05-18 10:40 来源:linux.it.net.cn 作者:IT
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;
(责任编辑:IT)
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; (责任编辑:IT) |