SQLの基礎知識V2-UNION

SQL列

SQLデータベースの基本的な知識の要約

SQLデータベースの高度な知識の要約

UNIONの役割

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

UNIONは前提条件を使用します。UNIONの各SELECTステートメントには、同じ数の列が必要です。

  • これらの列も同様のデータ型である必要があります

  • 各SELECTステートメントの列も同じ順序で配置する必要があります

UNION语法SELECTcolumn_name
(s)FROM table1
UNION
SELECT column_name(s)FROM table2;

注:デフォルトでは、UNION演算子は別の値を選択します。重複する値が許可されている場合は、UNIONALLを使用してください。

UNIONALL语法SELECTcolumn_name
(s)FROM table1
UNION ALL
SELECT column_name(s)FROM table2;

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


以下は、サンプルデータベースの「Customers」テーブルのデータです。

SQLの基礎知識V2-UNION

「サプライヤー」表から選択されたデータ:

SQLの基礎知識V2-UNION

UNIONの例
次のSQLステートメントは、「Customers」テーブルと「Suppliers」テーブルからすべての異なる都市(異なる値のみ)を選択します。

インスタンス

SELECT 城市 FROM Customers
UNION
SELECT 城市 FROM Suppliers

結果:

SQLの基礎知識V2-UNION

※注:UNIONを使用して、2つのテーブルのすべての都市をリストすることはできません。一部の顧客とサプライヤーが同じ都市から来ている場合、各都市は1つのリストにのみ含まれます。UNIONは異なる値のみを選択します。つまり、重複データを除外し、1つだけを保持します。UNION ALLを使用して、重複する値を選択してください。

UNION ALLの例
次のSQLステートメントは、UNION ALLを使用して、「Customers」テーブルと「Suppliers」テーブルからすべての都市(重複する値も)を選択します。

インスタンス

SELECT 城市 FROM Customers
UNION ALL
SELECT 城市 FROM Suppliers

結果:

SQLの基礎知識V2-UNION

UNION ALL with WHERE
次のSQLステートメントは、UNIONALLを使用して、「Customers」テーブルと「Suppliers」テーブル(繰り返し値)からすべての上海の都市を選択します。

インスタンス

SELECT 城市, 省份 FROM Customers
WHERE 省份='上海市'
UNION ALL
SELECT 城市, 省份 FROM Suppliers
WHERE 省份='上海市'

結果:

SQLの基礎知識V2-UNION

UNION with WHERE
次のSQLステートメントは、「customers」と「suppliers」からすべての異なる上海の都市を選択します(異なる値のみ)。

SELECT 城市, 省份 FROM Customers
WHERE 省份='上海市'
UNION
SELECT 城市, 省份 FROM Suppliers
WHERE 省份='上海市'

結果:

SQLの基礎知識V2-UNION

別のUNIONの例
次のSQLステートメントは、すべての顧客とサプライヤが配置されている都市と州を示しています。


SELECT '客户姓名' As Type,城市, 省份
FROM Customers
UNION
SELECT '供应商名称',城市, 省份
FROM Suppliers;

結果:

SQLの基礎知識V2-UNION

注釈

UNIONは、SQLの複数のセグメントを同様の関数で接続し、重複する行を削除でき、DISTINCTの機能を備えています。UNION ALLは、類似したSQLの複数のセグメントを接続するだけです。それらの利点は、複雑なSQLを小さなSQLに分割して、さまざまな関数または関数に従ってスプライシングできることです。これにより、クエリの効率を効果的に向上させることができます。

おすすめ

転載: blog.51cto.com/15057820/2656355