MySQL学习梳理 之UNION 关键字


UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。
UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有类似的数据类型。
同时,每条 SELECT 语句中的列的顺序必须相同.sql

SQL UNION 语法:
SELECT column_name FROM table1
UNION
SELECT column_name FROM table2优化

当 ALL 随 UNION 一块儿使用时(即 UNION ALL),不消除重复行
SQL UNION ALL 语法:
SELECT column_name FROM table1
UNION ALL
SELECT column_name FROM table2排序

注意:
一、UNION 结果集中的列名老是等于第一个 SELECT 语句中的列名
二、UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有类似的数据类型。
同时,每条 SELECT 语句中的列的顺序必须相同it

union:联合的意思,即把两次或屡次查询结果合并起来。
要求:两次查询的列数必须一致
推荐:列的类型能够不同,但推荐查询的每一列,想对应的类型同样
能够来自多张表的数据:屡次sql语句取出的列名能够不一致,此时以第一个sql语句的列名为准。
若是不一样的语句中取出的行,有彻底相同(这里表示的是每一个列的值都相同),那么union会将相同的行合并,最终只保留一行。
也能够这样理解,union会去掉重复的行。
若是不想去掉重复的行,能够使用union all。
若是子句中有order by,limit,需用括号()包起来。推荐放到全部子句以后,即对最终合并的结果来排序或筛选。io

如:
(select * from a order by id) union (select * from b order id);
在子句中,order by 须要配合limit使用才有意义。若是不配合limit使用,会被语法分析器优化分析时去除。table

相关文章
相关标签/搜索