SQLite UNION ALL運(yùn)算符用于組合兩個(gè)或多個(gè)SELECT語句的結(jié)果,但是不忽略重復(fù)的行(含有重復(fù)的行記錄)。
在SQLite UNION ALL中,查詢結(jié)果表還包括重復(fù)值。 其它規(guī)則適用于Union操作符。
語法:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION ALL
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
假設(shè)有兩個(gè)表:student和department。
sqlite> .tables
department student
sqlite>
student表中具有以下數(shù)據(jù):
sqlite> select * from student;
1|Maxsu|27|Shengzhen|20000.0
2|Minsu|25|Beijing|15000.0
3|Avgsu|23|Shanghai|2000.0
4|Linsu|25|Guangzhou|65000.0
5|Sqlsu|26|Haikou|25000.0
6|Javasu|21|Shengzhen|18000.0
7|Linsu|27|Haikou|10000.0
8|Minsu|23|Guangzhou|5000.0
9|Maxsu|23|Shenzhen|9000.0
sqlite>
department表中具有以下數(shù)據(jù):
sqlite> select * from department;
1|財(cái)務(wù)部|1
2|技術(shù)部|2
3|技術(shù)部|3
4|市場部|4
5|市場部|5
sqlite>
示例1:
使用union all操作符返回單個(gè)字段,這個(gè)簡單示例只返回來自兩個(gè)字段具有相同數(shù)據(jù)類型的多個(gè)SELECT語句中的一個(gè)字段。
下面來看看上面的兩個(gè)表:student和department,并在UNION ALL操作符從兩個(gè)表中選擇一個(gè)id。
SELECT ID FROM STUDENT
UNION ALL
SELECT ID FROM DEPARTMENT;
執(zhí)行上面代碼,得到以下結(jié)果 -

示例2:
UNION ALL內(nèi)部和外部連接,按照以下條件和UNION ALL子句,將上述兩個(gè)表:student和department作為內(nèi)部聯(lián)接和外部聯(lián)接。
SELECT EMP_ID, NAME, DEPT FROM STUDENT INNER JOIN DEPARTMENT
ON STUDENT.ID = DEPARTMENT.EMP_ID
UNION ALL
SELECT EMP_ID, NAME, DEPT FROM STUDENT LEFT OUTER JOIN DEPARTMENT
ON STUDENT.ID = DEPARTMENT.EMP_ID;
執(zhí)行上面代碼,得到以下結(jié)果 -
