内链接、左右连接、union并集
第一个:内连接接
- inner join
select * from a inner join b on a.id=b.id
- where a.id =b.id (这种用法非常常见)
select * from a,b where a.id=b.id
第二种:左右连接
- 左连接 left join on.....,查询结果为左边的所有记录,右表无的记录显示null
- 右连接 right join on .....,查询结果为右边的所有记录,左表无的显示为null
如图:右连接班级表,班级中的有一个班级3,在成绩表中无班级3的记录,所以左表显示为null
左连接亦是如此的,如下图:
第三:接下来到union 和union all ,对两个结果进行并集操作,不同的是union all 并集操作时,不去掉重复的数据;一般用于统计查询
union 用于合并两个或多个查询结果,有以下条件需要满足(根据行合并):
- 相同数量的列;
- 列必须拥有相类似的数据类型
- 同时,每条select语句中的列顺序必须相同
union对两个结果进行并集操作,选择班级id=1 和班级id 小于3的结果,并在一起显示;(没有重复的数据)
union all 包含重复数据,方便看出结果,查询条件直接相同了,直接明了
实践出真知,多动手实操吧!