SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT COLUMN_NAME(S) FROM TABLE_NAME1 UNION SELECT COLUMN_NAME(S) FROM TABLE_NAME2
注释:默认地,UNION操作符选取不同的值。如果允许重复的值,请使用UNION ALL。
SQL UNION ALL 语法
SELECT COLUMN_NAME(S) FROM TABLE_NAME1 UNION ALL SELECT COLUMN_NAME(S) FROM TABLE_NAME2
另外,UNION结果集中的列名总是等于UNION中第一个SELECT语句中的列名。
DUCK表:
IDENTIFIER | NAME | BIRTHDAY |
---|---|---|
DUCK110 | DUCKBO | 2015 |
DUCK111 | DUCKAO | 2016 |
DUCK112 | DUCKEO | 2016 |
DUCK113 | DUCKVO | 2016 |
CHICKEN表:
IDENTIFIER | NAME | BIRTHDAY |
---|---|---|
CHICKEN120 | CHICKENBG | 2015 |
CHICKEN121 | CHICKENFG | 2015 |
CHICKEN122 | CHICKENSG | 2016 |
CHICKEN123 | CHICKENZG | 2016 |
使用 UNION 命令
列出所有的DUCK和CHICKEN的名字:
SELECT IDENTIFIER,NAME,BIRTHDAY FROM DUCK UNION SELECT IDENTIFIER,NAME,BIRTHDAY FROM CHICKEN
结果:
IDENTIFIER | NAME | BIRTHDAY |
---|---|---|
CHICKEN120 | CHICKENBG | 2015 |
CHICKEN121 | CHICKENFG | 2015 |
CHICKEN122 | CHICKENSG | 2016 |
CHICKEN123 | CHICKENZG | 2016 |
DUCK110 | DUCKBO | 2015 |
DUCK111 | DUCKAO | 2016 |
DUCK112 | DUCKEO | 2016 |
DUCK113 | DUCKVO | 2016 |
注释:UNION命令只会选取不同的值。选取列的数据不相同
才会被列出
UNION ALL
列出所有duck和chicken:
SELECT
结果:
IDENTIFIER | NAME | BIRTHDAY |
---|---|---|
DUCK110 | DUCKBO | 2015 |
DUCK111 | DUCKAO | 2016 |
DUCK112 | DUCKEO | 2016 |
DUCK113 | DUCKVO | 2016 |
CHICKEN120 | CHICKENBG | 2015 |
CHICKEN121 | CHICKENFG | 2015 |
CHICKEN122 | CHICKENSG | 2016 |
CHICKEN123 | CHICKENZG | 2016 |