SQL UNION
SQL UNION 演算子は、2 つ以上の SELECT ステートメントの結果を結合します。
SQL UNION 演算子
UNION 演算子は、2 つ以上の SELECT ステートメントの結果セットをマージするために使用されます。
UNION 内の各 SELECT ステートメントには同じ数の列が必要であることに注意してください。列にも同様のデータ型が必要です。また、各 SELECT ステートメント内の列の順序は同じである必要があります。
SQL UNION 構文
UNION
SELECT column_name(s) FROM table2;
コメント: デフォルトでは、UNION 演算子は異なる値を選択します。重複した値が許可される場合は、UNION ALL を使用します。
SQL UNION ALL 構文
UNION ALL
SELECT column_name(s) FROM table2;
注: UNION 列名の総数結果セットの列名は、UNION の最初の SELECT ステートメントの列名と同じです。
デモデータベース
このチュートリアルでは、php サンプル データベースを使用します。
以下は「ウェブサイト」テーブルから選択されたデータです:
| 国名 |
-- -+---------------+---------------+----- --+------+
| グーグル https://www.google.cm/ | タオバオ | | 13 | 中国語のウェブサイト |
| | フェイスブック | https://www.facebook.com/ |
| 0 | --------+--------------------------+----------+--- - -----+
以下は「アプリ」APPのデータです:
+------+------------+-------- -- ---------------+--------+
| アプリ名 |
+----+----- ------+----------------------+----------+
| http://im.qq.com/ |
+----+-----------+---- -------+--- ------+
セット内の 3 行 (0.00 秒)
次の SQL ステートメントは、
異なる国をすべて選択します (異なるもののみ) ) 「Web サイト」テーブルと「アプリ」テーブルからの値):
インスタンスWeb サイトから国を選択
UNIONORDER BY country;
上記の SQL を実行すると、出力結果は次のようになります:
UNION を使用して 2 つのテーブル内のすべての国をリストすることはできません。 。いくつかの Web サイトとアプリが同じ国の場合、それぞれの国は 1 回だけリストされます。 UNION は個別の値のみを選択します。重複する値を選択するには UNION ALL を使用してください。
SQL UNION ALL の例次の SQL ステートメントは UNION ALL を使用して、「Websites」テーブルと「apps」テーブルから
allcountry (重複する値もあります) を選択します。 ウェブサイトから国を選択すべて結合アプリから国を選択
ORDER BY country;上記の SQL を実行すると、出力結果は次のようになります:
SQL UNION ALL with WHERE
次の SQL ステートメントは UNION ALL を使用して、"Websites" テーブルと "apps" テーブルから すべての 中国 (CN) データを選択します (重複する値もあります):
例
WHERE country='CN'
UNION ALL
アプリから国、アプリ名を選択
WHERE country='CN'
ORDER BY country;
上記のSQLを実行した出力結果は以下の通りです: