SQLiteの組合句
UNION句のSQLiteの/演算子は、SELECT文の2つ以上を組み合わせるために使用され、それが任意の重複行を返しません。
UNIONを使用するには、それぞれの列の数は、選択した列選択式の同じ、同じ数、同じデータ型である必要があり、それらが同じ順序を持っていますが、それらは必ずしも同じ長さを持っていないことを確実にします。
文法
UNION基本的な構文は次のとおりです。
SELECT column1の[、COLUMN2] TABLE1 FROM [、table2の] [WHERE条件] UNION SELECT column1の[、COLUMN2] TABLE1 FROM [、table2の] [WHERE条件]
ここでは任意の式を使用することができ、必要に応じて条件を与えられました。
例
下の2つのテーブルがあると仮定し、以下のように(1)会社のテーブルは、次のとおりです。
sqliteの> COMPANYから選択*; IDのNAME AGEアドレスSALARY ---------- -------------------- ---------- ---------- ---------- 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)別の表DEPARTMENTは、次のとおりです。
ID DEPT EMP_ID ---------- -------------------- ---------- 1請求1 2エンジニアリング2 3ファイナンス7 4エンジニアリング3 5財務4 6エンジニアリング5 7財務6
さて、次のようにのは、2つのテーブルを結合するために、SELECT文とUNION句を使用してみましょう:
sqliteの> SELECT EMP_ID、NAME、DEPTはCOMPANY INNER FROM DEPARTMENTを登録しよう COMPANY.ID = DEPARTMENT.EMP_ID ON UNION SELECT EMP_ID、NAME、DEPT会社からLEFT OUTERがDEPARTMENTを登録しよう COMPANY.ID = DEPARTMENT.EMP_ID ON;
これにより、以下の結果が得られます。
EMP_ID NAME DEPT ---------- -------------------- ---------- 1ポール・ITの請求 2アレンEngineerin 3テディEngineerin 4マーク・ファイナンス 5デイビッドEngineerin 6キム・ファイナンス 7ジェームズ・ファイナンス
UNION ALL句
UNION ALL演算子は、重複を含む2つのSELECT文の結果を結合するために使用されます。
UNIONは同じルールがUNIONにALL演算子を適用適用されます。
文法
次のようにUNION ALLのための基本的な構文は次のとおりです。
SELECT column1の[、COLUMN2] TABLE1 FROM [、table2の] [WHERE条件] UNION ALL SELECT column1の[、COLUMN2] TABLE1 FROM [、table2の] [WHERE条件]
ここでは任意の式を使用することができ、必要に応じて条件を与えられました。
例
さて、次のようにのは、ALL句は、2つのテーブルを結合するSELECT文とUNIONを使用してみましょう:
sqliteの> SELECT EMP_ID、NAME、DEPTはCOMPANY INNER FROM DEPARTMENTを登録しよう COMPANY.ID = DEPARTMENT.EMP_ID ON UNION ALL SELECT EMP_ID、NAME、DEPT会社からLEFT OUTERがDEPARTMENTを登録しよう COMPANY.ID = DEPARTMENT.EMP_ID ON;
これにより、以下の結果が得られます。
EMP_ID NAME DEPT ---------- -------------------- ---------- 1ポール・ITの請求 2アレンEngineerin 3テディEngineerin 4マーク・ファイナンス 5デイビッドEngineerin 6キム・ファイナンス 7ジェームズ・ファイナンス 1ポール・ITの請求 2アレンEngineerin 3テディEngineerin 4マーク・ファイナンス 5デイビッドEngineerin 6キム・ファイナンス 7ジェームズ・ファイナンス