Heim > Datenbank > MySQL-Tutorial > 有意思的left join语句

有意思的left join语句

WBOY
Freigeben: 2016-06-07 14:53:35
Original
1230 Leute haben es durchsucht

有意思的left join语句 问题的初衷是,在一个SQL语句中,有left join, 我加条件在where后面发生死锁,于是想是否可以把条件加入到left join的on后面? www.2cto.com 也就是下面两个语句是否效果一样: 语句1: select t1.*,t2.* from t1 left join t2 on t1


有意思的left join语句

 

问题的初衷是,在一个SQL语句中,有left join, 我加条件在where后面发生死锁,于是想是否可以把条件加入到left join的on后面?  www.2cto.com  

也就是下面两个语句是否效果一样:

语句1: select t1.*,t2.* from t1 left join t2 on t1.id=t2.id and t1.feild=1

 

语句2: select t1.*,t2.* from t1 left join t2 on t1.id=t2.id where t1.feild=1

 

数据环境:

create table t1(id int, feild int);

insert into t1 values(1 , 1);

insert into t1 values(1 , 2);

insert into t1 values(1 , 3);

insert into t1 values(1 , 4);

insert into t1 values(2 , 1);

insert into t1 values(2 , 2);

create table t2(id int, feild int);

insert into t2 values(1 , 1);

insert into t2 values(1 , 2);

insert into t2 values(1 , 5);

insert into t2 values(1 , 6);

insert into t2 values(2 , 1);

insert into t2 values(2 , 3);

 

经过验证发现: 语句1可以这样来理解,把left join 的on后面的所有条件看成一个整体,这里就是t1.id=t2.id and t1.feild=1看成一个整体,坐连接的时候,串t2表,看是否有满足条件的记录,如果没有就串null值。

语句2的理解简单了,现在left join,在最后结果集中做where过滤

 

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage