SQL UNION 和 UNION ALL
UNION
UNION命令用于从两个表中选取相关的信息,很类似JOIN命令。不过,当使用UNION命令时,所有被选取的列的数据类型应该是相同的。
注释:如使用UNION,那么只有不同的值会被选取。
SQL Statement 1 UNION SQL Statement 2
Employees_Norway:
E_ID | E_Name |
---|---|
01 | Hansen, Ola |
02 | Svendson, Tove |
03 | Svendson, Stephen |
04 | Pettersen, Kari |
Employees_USA:
E_ID | E_Name |
---|---|
01 | Turner, Sally |
02 | Kent, Clark |
03 | Svendson, Stephen |
04 | Scott, Stephen |
使用UNION命令
实例
列出所有在挪威和美国的不同的雇员名:
SELECT E_Name FROM Employees_Norway UNION SELECT E_Name FROM Employees_USA
结果
E_Name |
---|
Hansen, Ola |
Svendson, Tove |
Svendson, Stephen |
Pettersen, Kari |
Turner, Sally |
Kent, Clark |
Scott, Stephen |
注释:这个命令无法列出在挪威和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION命令只会选取不同的值。
UNION ALL
UNION ALL命令和UNION命令几乎是等效的,不过UNION ALL命令会列出所有的值。
SQL Statement 1 UNION ALL SQL Statement 2
使用UNION ALL命令
实例:
列出在挪威和美国的所有的雇员:
SELECT E_Name FROM Employees_Norway UNION ALL SELECT E_Name FROM Employees_USA
结果
E_Name |
---|
Hansen, Ola |
Svendson, Tove |
Svendson, Stephen |
Pettersen, Kari |
Turner, Sally |
Kent, Clark |
Svendson, Stephen |
Scott, Stephen |