SQLを使って、複数のクエリ結果を縦に結合するにはどうすればいいですか?
SQLでは、UNION演算子を使用して複数のクエリー結果を縦に結合できます。UNION演算子は、2 つ以上の SELECT ステートメントの結果セットを結合するために使用され、すべての結果を含む単一の結果セットを返します。
文法は次のとおりです。
SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2
UNION
...
ご注意ください
- UNION演算子はデフォルトでは重複行を取り除きますので、重複行を含む場合はUNION ALL演算子を使用できます。
- UNION 演算子では、各クエリの列数とデータ型が一致している必要があります。
- UNION 演算子の順番はクエリ文の順序どおりに実行される
例:
table1 と table2 の2つのテーブルがあると想定します。それぞれの構造とデータは次のとおりです。
商品はこちらのテーブルにございます。
id | name
---|-----
1 | Alice
2 | Bob
テーブル2
id | name
---|-----
1 | Charlie
3 | David
この2つのテーブルの結果をマージするには、次の SQL ステートメントを使用できます。
SELECT id, name FROM table1
UNION
SELECT id, name FROM table2;
統合の結果は次のとおりです。
id | name
---|------
1 | Alice
2 | Bob
1 | Charlie
3 | David