SQL入門チュートリアルマニュ...ログイン
SQL入門チュートリアルマニュアル
著者:php.cn  更新時間:2022-04-12 14:15:40

SQL UNION



SQL UNION 演算子は、2 つ以上の SELECT ステートメントの結果を結合します。


SQL UNION 演算子

UNION 演算子は、2 つ以上の SELECT ステートメントの結果セットをマージするために使用されます。

UNION 内の各 SELECT ステートメントには同じ数の列が必要であることに注意してください。列にも同様のデータ型が必要です。また、各 SELECT ステートメント内の列の順序は同じである必要があります。

SQL UNION 構文

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

コメント: デフォルトでは、UNION 演算子は異なる値を選択します。重複した値が許可される場合は、UNION ALL を使用します。

SQL UNION ALL 構文

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

注: UNION 列名の総数結果セットの列名は、UNION の最初の SELECT ステートメントの列名と同じです。


デモデータベース

このチュートリアルでは、php サンプル データベースを使用します。

以下は「ウェブサイト」テーブルから選択されたデータです:

+----+-------------+------------ - ---------------+------+-----------+
| 国名 |
-- -+---------------+---------------+----- --+------+
| グーグル https://www.google.cm/ | タオバオ | | 13 | 中国語のウェブサイト |
| | フェイスブック | https://www.facebook.com/ |
| 0 | --------+--------------------------+----------+--- - -----+

以下は「アプリ」APPのデータです:

mysql> SELECT * FROM apps;
+------+------------+-------- -- ---------------+--------+
| アプリ名 |
+----+----- ------+----------------------+----------+
| http://im.qq.com/ |
+----+-----------+---- -------+--- ------+
セット内の 3 行 (0.00 秒)

SQL UNION の例

次の SQL ステートメントは、

異なる

国をすべて選択します (異なるもののみ) ) 「Web サイト」テーブルと「アプリ」テーブルからの値):

インスタンス

Web サイトから国を選択

UNION
アプリから国を選択
ORDER BY country;

上記の SQL を実行すると、出力結果は次のようになります:

注:

UNION を使用して 2 つのテーブル内のすべての国をリストすることはできません。 。いくつかの Web サイトとアプリが同じ国の場合、それぞれの国は 1 回だけリストされます。 UNION は個別の値のみを選択します。重複する値を選択するには UNION ALL を使用してください。

SQL UNION ALL の例

次の SQL ステートメントは UNION ALL を使用して、「Websites」テーブルと「apps」テーブルから

all

country (重複する値もあります) を選択します。 ウェブサイトから国を選択すべて結合アプリから国を選択

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を実行した出力結果は以下の通りです: