首先说下union与join的区别
1、union是以行增加的方式,进行连接;join是以列增加的方式进行连接;
2、union连接查询的两个表的字段必须要一一对应,数目相等;join则没有要求,但是要求有相关联的字段关系。
关于join的三种连接方式,详解请看我上一篇博客:http://www.cnblogs.com/janneystory/p/5618140.html
然后咱们来看看union和union all的区别
符合union的两个表要满足以下条件:select语句需要有相同的列数,类似的数据类型,且列的顺序相同,另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
学生表:
教师表:
第一题:查询出所有学校师生的姓名 (没有要求是否排除重复,可以用union all)
select name from student
union all
select teacherName from teacher
第二题::查询出所有师生的姓名,去除重名的 (要求排除重复,可以用union)
select name from student
union
select teacherName from teacher