Mysql中的inner join,full join, left join,right join详解

Author: 刘老师(Aaron Lau) 武汉长乐教育,武汉PHP培训课程,版权所有,转载请注明!

Mysql中的inner join,full join, left join,right join详解

本课程主要内容概要

  1. inner join(等值连接):只返回两个表中联结字段相等的行; 两表都满足的组合.

  2. full join (全连) 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有, A表没有的显示为(null)

  3. left join(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录; A表 left join B表 左连,以A表为基础,A表的全部数据,B表有的组合。没有的为null

  4. right join(右联接):返回包括右表中的所有记录和左表中联结字段相等的记录。 A表 right join B表 右连,以B表为基础,B表的全部数据,A表的有的组合。没有的为null

比如我们有xs、cj两个表

xs表

id name
1 张三
2 李四
4 王五

cj表

id score
1 96
2 80
3 86

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
上一篇课程 下一篇课程

学生登录