聯合和聯合全部
聯合操作將兩個或多個查詢的結果組合到單個結果集中,該結果集包括屬於聯合中所有查詢的所有行,並將忽略任何存在的重複項。 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 顯示。