Latest web development tutorials

SQL UNION演算子

2以上のSELECTステートメントのSQL UNION及び業績。


SQL UNION演算子

UNION演算の結果セット演算子は、二つ以上の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の結果セットが常に最初の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を使用しています。

SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;

出力結果は以下の通りである上記のSQLを実行します。