联合和联合全部

联合操作将两个或多个查询的结果组合到单个结果集中,该结果集包括属于联合中所有查询的所有行,并将忽略任何存在的重复项。 Union all 也做同样的事情,但包括重复的值。从下面的例子中可以清楚地看出联合运作的概念。使用 union 时要考虑的几件事情是:

1.所有查询中列的数量和顺序必须相同。

2.数据类型必须兼容。

例:

我们有三个表:Marksheet1,Marksheet2 和 Marksheet3。Marksheet3 是 Marksheet2 的重复表,其中包含与 Marksheet2 相同的值。

表 1 :Marksheet1

StackOverflow 文档

表 2 :Marksheet2

StackOverflow 文档

表 3 :Marksheet3

StackOverflow 文档

表格 Marksheet1 和 Marksheet2 上的联合

SELECT SubjectCode, SubjectName, MarksObtained 
FROM Marksheet1
UNION 
SELECT CourseCode, CourseName, MarksObtained 
FROM Marksheet2

注意: 三个表的并集输出也与 Marksheet1 和 Marksheet2 上的 union 相同,因为并集操作不会使用重复值。

SELECT SubjectCode, SubjectName, MarksObtained 
FROM Marksheet1
UNION 
SELECT CourseCode, CourseName, MarksObtained 
FROM Marksheet2   
UNION
SELECT SubjectCode, SubjectName, MarksObtained 
FROM Marksheet3

OUTPUT

StackOverflow 文档

联合全部

SELECT SubjectCode, SubjectName, MarksObtained 
FROM Marksheet1
UNION ALL 
SELECT CourseCode, CourseName, MarksObtained 
FROM Marksheet2
UNION ALL
SELECT SubjectCode, SubjectName, MarksObtained 
FROM Marksheet3

OUTPUT

StackOverflow 文档

你会注意到 Marksheet3 中的重复值也使用 union all 显示。