SQL UNION演算子
2以上のSELECTステートメントのSQL UNION及び業績。
SQL UNION演算子
UNION演算の結果セット演算子は、二つ以上の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の結果セットが常に最初のSELECT文のUNIONの列名の列名と同じです。
デモ・データベース
このチュートリアルでは、w3bigサンプルデータベースを使用します。
以下は、選択した「ウェブサイト」のテーブルデータです。
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 本教程 | http://www.w3big.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
ここで「アプリ」APPデータは次のとおりです。
mysql> SELECT * FROM apps; +----+------------+-------------------------+---------+ | id | app_name | url | country | +----+------------+-------------------------+---------+ | 1 | QQ APP | http://im.qq.com/ | CN | | 2 | 微博 APP | http://weibo.com/ | CN | | 3 | 淘宝 APP | https://www.taobao.com/ | CN | +----+------------+-------------------------+---------+ 3 rows in set (0.00 sec)
SQLのUNIONの例
「ウェブサイト」と「アプリ」テーブルからすべての別の国(のみ異なる値)を選択するには、次のSQL文:
例
UNION
アプリから国を選択
国BY ORDER;
出力結果は以下の通りである上記のSQLを実行します。
注:UNION 2つのテーブルは、すべての国を使用することはできません示しています。同じ国からのいくつかのサイトとAPPは、それぞれの国は一度だけ表示されている場合。 UNIONは別の値を選択します。 重複した値を選択するために、UNION ALLを使用してください!
SQL UNION ALLインスタンス
次のSQL文は、「ウェブサイト」と「アプリ」の表(重複する値がある)から国のすべてを選択するには、UNION ALLを使用しています。
例
UNION ALL
アプリから国を選択
国BY ORDER;
出力結果は以下の通りである上記のSQLを実行します。
WHEREとSQL UNION ALL
次のSQL文は、「ウェブサイト」と「アプリ」の表(重複する値がある)から、中国(CN)データのすべてを選択するには、UNION ALLを使用しています。
例
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;
出力結果は以下の通りである上記のSQLを実行します。