Author: 刘老师(Aaron Lau)
武汉长乐教育,武汉PHP培训课程,版权所有,转载请注明!
Mysql中的inner join,full join, left join,right join详解
本课程主要内容概要
-
inner join
(等值连接):只返回两个表中联结字段相等的行;
两表都满足的组合.
-
full join
(全连) 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有, A表没有的显示为(null)
-
left join
(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录;
A表 left join B表 左连,以A表为基础,A表的全部数据,B表有的组合。没有的为null
right join
(右联接):返回包括右表中的所有记录和左表中联结字段相等的记录。
A表 right join B表 右连,以B表为基础,B表的全部数据,A表的有的组合。没有的为null
比如我们有xs、cj两个表
xs表
cj表
1. inner join
SELECT * FROM `xs` INNER JOIN `cj` ON xs.id = cj.id
# 相当于 SELECT * FROM `xs`,`cj` WHERE xs.id = cj.id
id |
name |
id |
score |
1 |
张三 |
1 |
96 |
2 |
李四 |
2 |
80 |
2. full join
SELECT * FROM `xs` FULL JOIN `cj` ON xs.id = cj.id
id |
name |
id |
score |
1 |
张三 |
1 |
96 |
2 |
李四 |
2 |
80 |
NULL |
NULL |
3 |
86 |
4 |
王五 |
NULL |
NULL |
3. left join
SELECT * FROM `xs` LEFT JOIN `cj` ON xs.id = cj.id
id |
name |
id |
score |
1 |
张三 |
1 |
96 |
2 |
李四 |
2 |
80 |
4 |
王五 |
NULL |
NULL |
4. right join
SELECT * FROM `xs` RIGHT JOIN `cj` ON xs.id = cj.id
id |
name |
id |
score |
1 |
张三 |
1 |
96 |
2 |
李四 |
2 |
80 |
NULL |
NULL |
3 |
86 |