MySQL UNION 查询
2019-05-14 00:45
465 查看
UNION用来合并多个 SELECT 结果。 考察如下两个表: # t1 +----+---------+ | id | pattern | +----+---------+ | 1 | Divot | | 2 | Brick | | 3 | Grid | +----+---------+ # t2 +----+---------+ | id | pattern | +----+---------+ | 1 | Divot | | A | Brick | | B | Grid | | C | Diamond | +----+---------+ 一个 union 示例: mysql> select * from t1 union select * from t2; +----+---------+ | id | pattern | +----+---------+ | 1 | Divot | | 2 | Brick | | 3 | Grid | | A | Brick | | B | Grid | | C | Diamond | +----+---------+ 6 rows in set (0.00 sec) 默认情况下 UNION 结果中已经去重,所以无须指定 DISTINCT。如果想保留所有结果可指定 ALL。 mysql> SELECT * FROM t1 UNION ALL SELECT * FROM t2; +----+---------+ | id | pattern | +----+---------+ | 1 | Divot | | 2 | Brick | | 3 | Grid | | 1 | Divot | | A | Brick | | B | Grid | | C | Diamond | +----+---------+ 7 rows in set (0.00 sec) 查询语句中可混合使用 UNION DISTINCT替覆盖掉左边 UNION ALL。 结果中的列名将使用第一个 SELECT 语句中定义的列名。各 SELECT 结果中对应位置的列其数据类型应该保持一致。如果不一致,MySQL 会根据结果中的数据类型及长度进行兼容的转换。 UNION 语句中只最后一个 SELECT 可指定 INTO OUTFILE。但其实整个 UNION 查询的结果都是存入这个文件的。 结合使用 ORDER BY或 LIMIT时,应使用括号将 SELECT 语句包裹。 (SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10) UNION (SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10); 对 UNION 结果进行整体排序和数量限制: (SELECT a FROM t1 WHERE a=10 AND B=1) UNION (SELECT a FROM t2 WHERE a=11 AND B=2) ORDER BY a LIMIT 10; SELECT 中指定了别名时,ORDER BY 应该使用该别名,而不是真实的列名。 -- ✅ (SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY b; -- 🚨 Unknown column 'a' in 'order clause' (SELECT a AS b FROM t) UNION (SELECT ...) ORDER BY a; 相关资源 |
相关文章推荐
- mysql中union 查询
- Mysql联合查询union和union all的使用介绍
- Mysql之union联合查询
- Mysql联合查询UNION和UNION ALL的使用介绍
- mysql组合查询(union和union all)
- mysql求交集:UNION ALL合并查询,inner join内连接查询,IN/EXISTS子查询
- 【转】Mysql联合查询union和union all的使用介绍
- Mysql联合查询union和union all的使用介绍
- Mysql从UNION ALL查询结果集中查询对应列出现错误"Every derived table must have its own alias"
- MySQL 两表UNION查询
- Mysql联合查询UNION和UNION ALL的使用介绍
- 【连接查询】mySql多表连接查询与union与union all用法
- mysql中的联合查询union和union all 学习记录。
- mysql 实战 or、in与union all 的查询效率
- mysql union all 中使用 含order by子查询 注意事项
- MySQL Union合并查询数据及表别名、字段别名用法分析
- Mysql 组合查询 UNION 与 UNION ALL
- mysql 实战 or、in与union all 的查询效率
- Case:MySQL使用in带子查询的时候,子查询最好不要使用union或union all
- MySQL 内连接 左连接 右连接 外连接(union组合查询)