derezzed

导航

MySQL【基础】多表连接查询

#多表连接查询语法(重点)
SELECT 字段列表
    FROM 表1  INNER|LEFT|RIGHT JOIN  表2
ON 表1.字段 = 表2.字段;

 1 内连接查询 (只显示符合条件的数据)

#查询人员和部门所有信息
select * from person inner join dept  on person.did =dept.did;

 效果: 大家可能会发现, 内连接查询与多表联合查询的效果是一样的.

结果为:

2 左外连接查询 (左边表中的数据优先全部显示)

 

#查询人员和部门所有信息
select * from person left join  dept  on  person.did =dept.did;

 

 效果:人员表中的数据全部都显示,而 部门表中的数据符合条件的才会显示,不符合条件的会以 null 进行填充.

结果为:

3 右外连接查询 (右边表中的数据优先全部显示)

 

#查询人员和部门所有信息
select * from person right join  dept  on  person.did =dept.did;

 

 效果:正好与[左外连接相反]

4 全连接查询(显示左右表中全部数据)

全连接查询:是在内连接的基础上增加 左右两边没有显示的数据
  注意: mysql并不支持全连接 full JOIN 关键字
  注意: 但是mysql 提供了 UNION 关键字.使用 UNION 可以间接实现 full JOIN 功能

#查询人员和部门的所有数据
 
SELECT * FROM person LEFT JOIN dept ON person.did = dept.did
UNION
SELECT * FROM person RIGHT JOIN dept ON person.did = dept.did;

 结果为:

 

posted on 2018-02-28 15:41  derezzed  阅读(141)  评论(0)    收藏  举报