MYSQL-UNION 绝地灬酷狼 2023-10-13 08:58 39阅读 0赞 ## 语法: ## `UNION` 操作符用来合并两个 `SELECT` 语句的结果 SELECT statement UNION [DISTINCT | ALL] SELECT statement **`UNION` 中的 `SELECT` 语句中的列数、列顺序必须相同** UNION是双目操作符,需要两个SELECT语句作为操作数,UNION后面可以接DISTINCT或者ALL 如果不写DISTINCT或者ALL就默认是UNION DISTINCT `UNION DISTINCT` 或 `UNION` 将过滤掉结果集中重复记录 UNION ALL 会返回所有结果 ## 建立测试数据 ## CREATE TABLE a (v INT); CREATE TABLE b (v INT); CREATE TABLE c (v INT); INSERT INTO a VALUES (1), (2), (NULL), (NULL); INSERT INTO b VALUES (2), (2), (NULL); INSERT INTO c VALUES (3), (2); a表: ![618976dbbc734e79a05147023d54c876.png][] b表: ![4e933612058f4429b64ee8552db17b79.png][] c表: ![fd4f5ac7e9f346c78e475edd5d38aa68.png][] ## 例子: ## SELECT * FROM a UNION SELECT * FROM b; ![3869a5bb57614fb0ae3e0bc8904b5855.png][] 我们可以看出有重复的 NULL被去重了 也可以使用多个UNION连用 SELECT * FROM a UNION SELECT * FROM b UNION SELECT * FROM c; ![5952c163dac7404cb08e8ce72f83fed7.png][] 原则上来讲,我们只要求UNION两侧的列名相同,不要求列名相同,但是官方的文档里面要求列名一定相同,否则可能会引起架构错误 不过如果一般情况下,我们UNION两个不同的列名时,合并结果的列名和UNION的第一个操作数相同 [618976dbbc734e79a05147023d54c876.png]: https://img-blog.csdnimg.cn/618976dbbc734e79a05147023d54c876.png [4e933612058f4429b64ee8552db17b79.png]: https://img-blog.csdnimg.cn/4e933612058f4429b64ee8552db17b79.png [fd4f5ac7e9f346c78e475edd5d38aa68.png]: https://img-blog.csdnimg.cn/fd4f5ac7e9f346c78e475edd5d38aa68.png [3869a5bb57614fb0ae3e0bc8904b5855.png]: https://img-blog.csdnimg.cn/3869a5bb57614fb0ae3e0bc8904b5855.png [5952c163dac7404cb08e8ce72f83fed7.png]: https://img-blog.csdnimg.cn/5952c163dac7404cb08e8ce72f83fed7.png
相关 mysqlunion和union all区别 MySQL中union是什么用的,可以给个示例吗? 合并多个查询结果然后产生一个结果,比如: SELECT UNION SELECT UNION SELECT 红太狼/ 2023年09月25日 10:09/ 0 赞/ 55 阅读
还没有评论,来说两句吧...