简介

所谓组合查询,就是执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回

使用组合查询的两种情况:

  1. 在单个查询中从不同的表返回类似结构的数据
  2. 对单个表执行多个查询,按单个查询返回数据

多个SELECT语句之间使用UNION关键字连接,返回的是多条SELECT语句返回结果的并集(即去掉重复的结果,这是默认的),如果不想去掉重复的结果,就在UNION关键字后加上ALL

实例

单个SELECT语句

查询姓名中包含“赵”字的学生

1
SELECT * FROM t_student WHERE student_name LIKE '%赵%';

查询年龄大于10岁的学生

1
SELECT * FROM t_student WHERE age>10;

使用UNION

返回两条SELECT语句结果的并集,去掉了重复的结果

1
SELECT * FROM t_student WHERE student_name LIKE '%赵%' UNION SELECT * FROM t_student WHERE age>10;

使用UNION ALL

不去掉重复的结果

1
SELECT * FROM t_student WHERE student_name LIKE '%赵%' UNION ALL SELECT * FROM t_student WHERE age>10;

进行排序

在SQL语句的最后加上ORDER BY即可

1
SELECT * FROM t_student WHERE student_name LIKE '%赵%' UNION ALL SELECT * FROM t_student WHERE age>10 ORDER BY id;