union与union all的区别

首先说下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

 

posted @ 2016-06-26 17:32  后知然后觉  阅读(378)  评论(0编辑  收藏  举报