MySQL查询语句(七)——union
2019-08-12 21:50
148 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Sudley/article/details/99339967
MySQL查询语句(六)——全连接与左连接查询
union合并多条语句的结果
语法:sql1 union sql2
mysql> select * from result; +--------+--------+-------+ | name | subect | score | +--------+--------+-------+ | 张三 | 数学 | 120 | | 张三 | 语文 | 12 | | 张三 | 地理 | 20 | | 李四 | 数学 | 44 | | 李四 | 语文 | 33 | | 王五 | 数学 | 5 | +--------+--------+-------+ 6 rows in set (0.00 sec) #取出小于30和大于100分的 mysql> select * from result where score<30 union select * from result where score>100; +--------+--------+-------+ | name | subect | score | +--------+--------+-------+ | 张三 | 语文 | 12 | | 张三 | 地理 | 20 | | 王五 | 数学 | 5 | | 张三 | 数学 | 120 | +--------+--------+-------+ 4 rows in set (0.00 sec) #mt表数据与result表的进行合并输出 mysql> select * from mt; +--------+--------+---------+ | cat_id | name | high_cm | +--------+--------+---------+ | 1 | 张三 | 173 | | 2 | 张三 | 155 | +--------+--------+---------+ 2 rows in set (0.00 sec) mysql> select * from result union select name,cat_id,high_cm from mt; +--------+--------+-------+ | name | subect | score | +--------+--------+-------+ | 张三 | 数学 | 120 | | 张三 | 语文 | 12 | | 张三 | 地理 | 20 | | 李四 | 数学 | 44 | | 李四 | 语文 | 33 | | 王五 | 数学 | 5 | | 张三 | 1 | 173 | | 张三 | 2 | 155 | +--------+--------+-------+ 8 rows in set (0.00 sec)
union限制条件:查询结果集的列数量一致
mysql> select name,cat_id from mt union select * from result; ERROR 1222 (21000): The used SELECT statements have a different number of columns
union内层不会排序,外层语句进行排序
加了limit时,对查询结果有影响时内层order by生效
mysql> (select name,cat_id,high_cm from mt order by high_cm) union (select * from result); +--------+--------+---------+ | name | cat_id | high_cm | +--------+--------+---------+ | 张三 | 1 | 173 | | 张三 | 2 | 155 | | 张三 | 数学 | 120 | | 张三 | 语文 | 12 | | 张三 | 地理 | 20 | | 李四 | 数学 | 44 | | 李四 | 语文 | 33 | | 王五 | 数学 | 5 | +--------+--------+---------+ 8 rows in set (0.00 sec) mysql> select name,cat_id,high_cm from mt union select * from result order by high_cm; +--------+--------+---------+ | name | cat_id | high_cm | +--------+--------+---------+ | 王五 | 数学 | 5 | | 张三 | 语文 | 12 | | 张三 | 地理 | 20 | | 李四 | 语文 | 33 | | 李四 | 数学 | 44 | | 张三 | 数学 | 120 | | 张三 | 2 | 155 | | 张三 | 1 | 173 | +--------+--------+---------+ 8 rows in set (0.00 sec) mysql> (select name,cat_id,high_cm from mt order by high_cm limit 1) union (select * from result); +--------+--------+---------+ | name | cat_id | high_cm | +--------+--------+---------+ | 张三 | 2 | 155 | | 张三 | 数学 | 120 | | 张三 | 语文 | 12 | | 张三 | 地理 | 20 | | 李四 | 数学 | 44 | | 李四 | 语文 | 33 | | 王五 | 数学 | 5 | +--------+--------+---------+ 7 rows in set (0.00 sec)
union默认去重复
union all 不去重复
相关文章推荐
- mysql学习之八mysql的排序order by 语句,limit语句返回记录数限制,distinct去掉重复记录语句,union联合查询语句。
- 1、Mysql:mysql简单的索引和in、or、union unionall语句查询速度
- Mysql中使用UNION语句进行多表连接查询
- Mysql中使用UNION语句进行多表连接查询
- Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
- MySQL多个相同结构的表查询并把结果合并放在一起的语句(union all)
- mysql优化limit查询语句的5个方法
- MySQL、Oracle和SQL Server的分页查询语句
- MySQL中union和join语句使用区别的辨析教程
- mysql 在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号
- 从零开始学mysql-------读书笔记查询语句(一)
- 浅谈MySQL中优化sql语句查询常用的30种方法
- 提升MYSQL查询效率的10个SQL语句优化技巧
- mysql的hql语句之时间段查询
- MySql日期查询语句详解
- mysql 查询语句长度限制
- 使用MySQL的慢查询日志找到低效的SQL语句
- mysql中select查询语句添加自增id
- 如何分析mysql的查询语句
- MySQL查询语句练习题