聯合和聯合全部

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