1.UNION
union用于合并两个或多个select 语句的结果集。
注意:union内部的select 语句必需拥有相同数量的列,列也夜必须拥有相似的数据类型,同时每条select 语句中的列的顺序必须相同。
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
注释:默认的union 操作符是选取不同的值,如果允许重复的值,使用unino all。
另外:union结果集中的列名总是等于union 中第一个select 语句中的列名。
China:
ID | Name |
---|---|
01 | Zhang, Hua |
02 | Wang, Wei |
03 | Carter, Thomas |
04 | Yang, Ming |
USA:
ID | Name |
---|---|
01 | Adams, John |
02 | Bush, George |
03 | Carter, Thomas |
04 | Gates, Bill |
select Name from China union select Name from USA;
结果:
Name |
---|
Zhang, Hua |
Wang, Wei |
Carter, Thomas |
Yang, Ming |
Adams, John |
Bush, George |
Gates, Bill |
注释:这个命令无法列出中国和美国所有的雇员,在上面的例子中,我们有两个名字相同的员工,但是只列出了一个,union 只会选取不同的值。
UNION ALL
UNION和UNION ALL几乎是等效的,但是UNION ALL可以列出所有的值。