union
链接多条查询语句将查询结果合并
要求:两次查询的列数一致
推荐:查询每一列,对应的列类型也一样
select * from cj where fs >60 union select * from cj where fs <90;
注意:
1、可以来自多张表
2、多次sql 语句取出的列名可以不一致,以第一次为准
3、如果不同的语句中取出的行,有完全相同的值(每个列的值都相同),相同的行会合并
表a
a | 15 |
b | 10 |
表b
a | 25 |
b | 10 |
合并后
a | 15 |
b | 10 |
a | 25 |
union all
取出多张表中所有的值,即使有相同的值,也会取出
union 结合 order by ,limit
1、如果想对查询结果进行排序,需要对子句加括号
( select xxx union select xxx ) order by xxx desc
2、在子句中,order by 配合 limit 才有意义
select xxx order by xx union select xxx order by xx --------> 无意义
( select xxx union select xxx ) order by xxx ------------> 有意义,推荐使用