联合和联合全部
联合操作将两个或多个查询的结果组合到单个结果集中,该结果集包括属于联合中所有查询的所有行,并将忽略任何存在的重复项。 Union all 也做同样的事情,但包括重复的值。从下面的例子中可以清楚地看出联合运作的概念。使用 union 时要考虑的几件事情是:
1.所有查询中列的数量和顺序必须相同。
2.数据类型必须兼容。
例:
我们有三个表:Marksheet1,Marksheet2 和 Marksheet3。Marksheet3 是 Marksheet2 的重复表,其中包含与 Marksheet2 相同的值。
表 1 :Marksheet1
表 2 :Marksheet2
表 3 :Marksheet3
表格 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
联合全部
SELECT SubjectCode, SubjectName, MarksObtained
FROM Marksheet1
UNION ALL
SELECT CourseCode, CourseName, MarksObtained
FROM Marksheet2
UNION ALL
SELECT SubjectCode, SubjectName, MarksObtained
FROM Marksheet3
OUTPUT
你会注意到 Marksheet3 中的重复值也使用 union all 显示。