mysql的多表连接
Posted rookie111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的多表连接相关的知识,希望对你有一定的参考价值。
笛卡尔积 select * from A,B;不需要任何条件,两个表相乘。
连接类型:交叉连接,内连接,外连接。
(1)交叉连接,基本就是和笛卡尔积一样的连接。select * from A cross join B where .....
(2)内连接:自然连接,等值连接,非等值连接。
a.自然连接:在连接条件中使用=运算符比较连接列的列值,但是删除连接表中的重复列。
b.等值连接:不删除重复的列,A inner join B on a.id=b.id(也可以隐式 A,Bwhere a.id=b.id)A,B的顺序有关系。
c.非等值连接:用<,>等运算符连接两个表。
(3)外连接:左外连接,右外连接,全外连接。
a.左外连接 A left outer join B on A.id=B.id
b.右外连接 A right outer join B on A.id=B.id
c.全外连接 A full outer join on A.id=B.id
注:
on和where筛选条件的不同:
1.on条件是再生成临时表时使用的条件,不管on中的条件是否为真,都会返回左边表中的记录(left outer join)。
2.where则是临时表生成后,对数据进行的过滤条件。
以上是关于mysql的多表连接的主要内容,如果未能解决你的问题,请参考以下文章