SQLite クラシック チュ...login
SQLite クラシック チュートリアル
著者:php.cn  更新時間:2022-04-13 17:05:02

SQLite Unions 子句


SQLite の UNION 句/演算子は、重複する行を返さずに 2 つ以上の SELECT ステートメントの結果を結合するために使用されます。

UNION を使用するには、各 SELECT で選択される列の数が同じ、列式の数が同じ、データ型が同じである必要があり、それらの順序が同じであることを確認しますが、必ずしも同じである必要はありません。同じ長さ。 syntax

Union

基本的な構文は次のとおりです。 table1 [ , table2 ]

[WHERE条件]

ここで指定する条件は、必要に応じて任意の式を使用できます。

以下の2つのテーブルがあるとします。 (1) COMPANYテーブルは次のとおりです:

sqlite> select * from COMPANY;
ID
---------- -- -- ---------------- ---------- ---------- ----------
1 パウロ 32カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド 65000.0
5 デビッド 27 テキサス 85000.0
6 キム キム 22 サウスホール 45000.0
7 ジェームズ 24ストン10000.0

(2) 以下に示すように、もう 1 つのテーブルは DEPARTMENT です:

ID - ----------
1 IT 請求 1
2 エンジニアリング 2
3 財務 7
4 エンジニアリング 3
5 4
6 エンジニアリング 5
7
次に、以下に示すように、SELECT ステートメントと UNION 句を使用して 2 つのテーブルを結合しましょう:

sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT

ECT EMP_ID, NAME, DEPT FROM COMPANY.ID = DEPARTMENT.EMP_ID;
で COMPANY が DEPARTMENT
を外部結合しました

これにより、次の結果が生成されます:

EMP_ID ---
1 Paul IT Billing
2 Allen Engineer
3 Engineering
4 Mark Finance
5 David Engineer 6 Kim 重複行を含む SELECT ステートメントの結果。

UNION に適用されるのと同じルールが UNION ALL 演算子にも適用されます。
構文

UNION ALL

基本的な構文は次のとおりです:

SELECT column1 [, column2 ]

FROM table1 [, table2 ]

[WHERE条件]

UNION ALL

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE 条件]


ここで指定する条件には、必要に応じて任意の式を使用できます。



次に、SELECT ステートメントと UNION ALL 句を使用して、次のように 2 つのテーブルを結合してみましょう:
sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT

ON COMPANY.ID = DEPART MENT .EMP_ID

UNION ALL

SELECT EMP_ID、NAME、DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT

ON COMPANY.ID = DEPARTMENT.EMP_ID;

これにより次の結果が生成されます:

EMP_ID ----
1 Paul It Billing
2 Allen Engineerin
3 Teddy Engineerin
4 マーク・ファイナンス
5 デビッド・エンジニア
6 キム・ファイナンス
7 ジェームス・ファイナンス
1 ポール・イット・ビリング
2 Allen エンジニア
3 Te DDY ENGINEERIN e4 Mark Finance
5 David David エンジニア
6 Kim Finance
7 Finance James