这一次说下如何利用UNION操作符实现组合查询,即将多条SELECT语句组合成一个结果集。
我们目前每次使用数据库查询都是用单个SELECT来用的,但是MySQL也允许执行多个查询,就是说多个SELECT,但是是一个结果集。这样的组合查询称为并(union),也叫复合查询。
有两种情况,我们需要用到组合查询:
1.在单个查询中从不同的表返回类似结构的数据;
2.对单个表执行多个查询,按单个查询返回数据;
TIP: 组合查询和多个WHERE条件 。 我们可以发现,多数情况下,组合相同表的两个查询和多个WHERE子句条件的单SELECT查询功能类似。但是从性能上讲,我们可以实验一下,看看哪个更好。
part 1 创建组合查询
可用UNION操作符来组合多条SQL语句。
SELECT coder.name FROM coder UNION SELECT git.name FROM git;
可以看见,这条语句由前面两条SELECT语句组成,语句中用UNION关键字分隔。
UNION只是MySQL执行两条SELECT语句,并把输出组合成单个查询结果集。
part 2