SQL UNION演算子は、二つ以上のSELECT文の結果を兼ね備えています。
SQL UNION演算子
UNION演算子は、2つ以上のSELECT文の結果セットを組み合わせるために使用されます。
UNION内の各SELECT文の列の数が同じでなければならないことに注意してください。 列も同様のデータ型を持っている必要があります。 また、各SELECT文の列は、同じ順序でなければなりません。
SQL UNION構文
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2 ;
Note: UNION演算子は、デフォルトでは異なる値のみを選択します。 重複値を許可するには、UNIONでALLキーワードを使用します。
SQL UNION ALL構文
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2 ;
PS: UNIONの結果セットの列名は、通常、UNIONの最初のSELECT文の列名に等しいです。
デモデータベース
このチュートリアルでは、よく知られているNorthwindサンプルデータベースを使用します。
下からの選択である"Customers"テーブルには:
顧客ID | 顧客名 | 連絡先 | 住所 | シティ | 郵便番号 | 国 |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitucion 2222 | Mexico D.F. | 05021 | Mexico |
3 | Antonio Moreno Taqueria | Antonio Moreno | Mataderos 2312 | Mexico D.F. | 05023 | Mexico |
以下とからの選択"Suppliers"テーブル:
仕入 | サプライヤ名 | 連絡先 | 住所 | シティ | 郵便番号 | 国 |
---|---|---|---|---|---|---|
1 | エキゾチックな液体 | シャーロット・クーパー | 49ギルバートセント | ロンドン | EC1 4SD | イギリス |
2 | ニューオーリンズケイジャンデライト | シェリー・バーク | 私書箱78934 | ニューオーリンズ | 70117 | アメリカ合衆国 |
3 | おばあちゃんケリーのホームステッド | レジーナマーフィー | 707オックスフォードRdを。 | アナーバー | 48104 | アメリカ合衆国 |
SQL UNION例
次のSQL文からすべての異なる都市(異なる値のみ)を選択し、 "Customers"と"Suppliers"テーブル:
Note: UNION 2つのテーブルからすべての都市をリストするために使用することはできません。 いくつかの顧客やサプライヤーが同じ都市を共有している場合、各都市は一度だけ表示されます。 UNIONは異なる値のみを選択します。 また、重複する値を選択するために、UNION ALLを使用してください!
SQL UNION ALL例
次のSQL文は、 すべての(重複値も)の都市を選択するために、UNION ALLを使用して"Customers"と"Suppliers"テーブルを:
SQLのUNION ALLで
次のSQL文は、(また、重複した値)は、 ドイツからの都市のすべてを選択するには、UNION ALLを使用して"Customers"と"Suppliers"テーブルを:
例
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY
City;
»それを自分で試してみてください