SQLite經典教學課程login
SQLite經典教學課程
作者:php.cn  更新時間:2022-04-13 17:05:02

SQLite 聯合子子句


SQLite的 UNION 子句/運算子用於合併兩個或多個 SELECT 語句的結果,不傳回任何重複的行。

為了使用UNION,每個SELECT 被選擇的列數必須是相同的,相同數目的列表達式,相同的資料類型,並確保它們有相同的順序,但它們不必具有相同的長度。

語法

UNION 的基本文法如下:

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

UNION

#SELECT column1 [, column2 ]
FROM table1 [, table2 

這裡給定的條件根據需要可以是任何表達式。

實例

假設有以下兩個表,(1)COMPANY 表如下:

sqlite> select * from COMPANY;
ID         COMPANY;
ID       AGE         ADDRESS     SALARY
----------  --------------------  ----------  ---- ------  ----------
1           Paul                  32          California  20000.0
2           Allen                 25          Texas       15000.0
3           Teddy                 23          Norway      20000.0
4           Mark                  25          Rich-Mond   65000.0
5           David                 27        Kim                   22                       24    Sharp

(2)另一表是DEPARTMENT,如下圖:

ID          DEPT             -----------  ----------
1           IT Billing            1
21           Finance               7
4       Finance               4
6           以Engineering                 6


#現在,讓我們使用SELECT 語句及UNION 子句連接兩個資料表,如下所示:
sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT

        EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT

        ON COMPANY.ID = DEPARTMENT.EMP_ID;

這將產生以下結果:

EMP_ID      NAME                  ----  ----------
1           Paul                          Engineerin
3           Teddy                         Finance
5           David  Finance
7           James                 James   

適用於 UNION 的規則同樣適用於 UNION ALL 運算子。

語法

UNION ALL

的基本文法如下:

SELECT column1 [, column2 ]

FROM table1 [, table2 ]

[WHERE condition]

UNION ALLSELECT column1 [, column2 ]

FROM table1 [, table2 ]
[WHERE# condition]
o
這裡給定的條件根據需要可以是任何表達式。

實例

現在,讓我們使用SELECT 語句及UNION ALL 子句來連接兩個表,如下所示:


sqlite> SELECT EMP_ID, NAME , DEPT FROM COMPANY INNER JOIN DEPARTMENT
        ON COMPANY.ID = DEPARTMENT.EMP_ID## COMPANY LEFT OUTER JOIN DEPARTMENT
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

這將產生以下結果:

EMP_ID      NAME                  DEPT
------------ --- ----  ----------
1           Paul                  IT 計費
2           Allen                 工程
3           Teddy                 工程
4           Mark                  財務
5           David                 工程
6           Kim財務
7           James                 財務
1           Paul                 IT 帳單
2           Allen                 工程
3            Teddy                 工程
4           Mark                  財務
5           David                 工程
6           Kim            Kim                    財經
7           詹姆士                 所產生會計處理
########


##