SQL UNION演算子
SQL UNION演算子
UNION
演算子は、2つ以上のSELECT
文の結果セットを結合するのに使われる。
UNION
内の全てのSELECT
文は同じ数の列を持たなければなりません。
列は同じようなデータ型でなければなりません。
全てのSELECT
文の列は同じ順序でなければなりません。
UNION構文
SELECT <em>column_name(s)</em> FROM <em>table1</em>
UNION
SELECT <em>column_name(s)</em> FROM <em>table2</em>;
UNION ALL構文
UNION
演算子は、デフォルトでは明確な値のみを選択します。重複する値を許容するには、UNION ALL
を使用します。
SELECT <em>column_name(s)</em> FROM <em>table1</em>
UNION ALL
SELECT <em>column_name(s)</em> FROM <em>table2</em>;
注:結果セットのカラム名は通常、最初のSELECT
文のカラム名と等しい。
デモデータベース
このチュートリアルでは、よく知られているNorthwindサンプルデータベースを使用します。
以下は、「顧客」テーブルからの選択です。
顧客ID |
顧客名 |
連絡先 |
住所 |
街 |
郵便番号 |
国 |
---|---|---|---|---|---|---|
1 |
アルフレッド・フードボックス | マリア・アンダース | オベレ通り57 | ベルリン | 12209 | ドイツ |
2 | アナ・トルヒーヨ サンドイッチとアイスクリーム | アナ・トルヒーヨ | コンスティトゥシオン通り2222番地 | メキシコDF | 05021 | メキシコ |
3 | アントニオ・モレノ・タケリア | アンソニー・モレノ | マタデロス 2312 | メキシコDF | 05023 | メキシコ |
そして、「サプライヤー」テーブルからの選択
サプライヤーID |
サプライヤ名 |
連絡先 |
住所 |
街 |
郵便番号 |
国 |
---|---|---|---|---|---|---|
1 | エキゾチック・リキッド | シャーロット・クーパー | 49 ギルバート ストリート | ロンドン | EC1 4SD | イギリス |
2 | ニューオーリンズのケイジャン料理 | シェリー・バーク | 私書箱 78934 | ニューオーリンズ | 70117 | アメリカ合衆国 |
3 | ケリーおばあちゃんのホームステッド | レジーナ・マーフィー | 707オックスフォードロード | アナーバー | 48104 | アメリカ合衆国 |
SQL UNIONの例
次のSQLステートメントは、"Customers"テーブルと"Suppliers"テーブルの両方から都市(個別の値のみ)を返します。
注:同じ都市を持つ顧客やサプライヤーがいる場合、UNION
は明確な値のみを選択するため、各都市は一度だけリストされます。重複する値も選択するには、UNION ALL
を使用します!
SQL UNION ALLの例
次のSQLステートメントは、"Customers"テーブルと"Suppliers"テーブルの両方から都市 (重複する値も) を返します。
WHEREを使用したSQL UNION
次のSQLステートメントは、"Customers"テーブルと"Suppliers"テーブルの両方からドイツの都市 (個別の値のみ) を返します。
例
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
WHEREを使用したSQL UNION ALL
次のSQLステートメントは、"Customers"テーブルと"Suppliers"テーブルの両方からドイツの都市 (重複する値も) を返します。
例
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
別のUNIONの例
次のSQLステートメントは、すべての顧客とサプライヤーを一覧表示します。
例
SELECT 'Customer' AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。