SQLチュートリアル

SQL HOME SQLイントロ SQL構文 SQL Select SQL Select Distinct SQL Where SQL And、Or、Not SQLの順序 SQL Insert Into SQLNull値 SQLアップデート SQL削除 SQL Select Top SQLの最小値と最大値 SQLカウント、平均、合計 SQL Like SQLワイルドカード SQL入力 SQLの間 SQLエイリアス SQL結合 SQL内部結合 SQL左結合 SQL右結合 SQL完全結合 SQL自己結合 SQLユニオン SQL Group By SQLを持っている SQLが存在する SQL Any、All SQL Select Into SQL Insert Into Select SQLケース SQLNull関数 SQLストアドプロシージャ SQLコメント SQL演算子

SQLデータベース

SQL Create DB SQLドロップDB SQLバックアップDB SQLテーブルの作成 SQLドロップテーブル SQL ALTER TABLE SQLの制約 SQLはNullではありません SQL独自 SQL主キー SQL外部キー SQLチェック SQLのデフォルト SQLインデックス SQL自動インクリメント SQLの日付 SQLビュー SQLインジェクション SQLホスティング SQLデータ型

SQLリファレンス

SQLキーワード MySQL関数 SQLServerの機能 MSAccess関数 SQLクイック参照

SQLの

SQLの例 SQLクイズ SQL演習 SQL証明書

SQLUNION演算子_


SQLUNION演算子

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

  • 内のすべてのSELECTステートメントに UNIONは、同じ数の列が必要です
  • 列も同様のデータ型である必要があります
  • SELECTすべてのステートメントの列も同じ順序である必要があります

UNION構文

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

UNIONALL構文

演算子はUNION、デフォルトで個別の値のみを選択します。重複する値を許可するには、次を使用しますUNION ALL

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

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


デモデータベース

このチュートリアルでは、よく知られているNorthwindサンプルデータベースを使用します。

以下は、「顧客」テーブルからの抜粋です。

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico

そして、「サプライヤー」テーブルからの選択:

SupplierID SupplierName ContactName Address City PostalCode Country
1 Exotic Liquid Charlotte Cooper 49 Gilbert St. London EC1 4SD UK
2 New Orleans Cajun Delights Shelley Burke P.O. Box 78934 New Orleans 70117 USA
3 Grandma Kelly's Homestead Regina Murphy 707 Oxford Rd. Ann Arbor 48104 USA


SQLUNIONの例

次のSQLステートメントは、「Customers」テーブルと「Suppliers」テーブルの両方から都市(個別の値のみ)を返します。

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

注:UNION一部の顧客またはサプライヤーが同じ都市を所有している場合、異なる値のみが選択されるため、各都市は1回だけリストされます。UNION ALL重複する値を選択するためにも使用 してください!


SQL UNIONALLの例

次のSQLステートメントは、「Customers」テーブルと「Suppliers」テーブルの両方から都市(重複する値も)を返します。

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

SQL UNION With WHERE

次のSQLステートメントは、「Customers」テーブルと「Suppliers」テーブルの両方からドイツの都市(個別の値のみ)を返します。

SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;

SQL UNION ALL With WHERE

次のSQLステートメントは、「Customers」テーブルと「Suppliers」テーブルの両方からドイツの都市(重複する値も)を返します。

SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;

別のUNIONの例

次のSQLステートメントは、すべての顧客とサプライヤを一覧表示します。

SELECT 'Customer' AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;

上記の「ASタイプ」に注意してください。これはエイリアスです。SQLエイリアスは、テーブルまたは列に一時的な名前を付けるために使用されます。エイリアスは、クエリの期間中のみ存在します。そこで、ここでは「タイプ」という名前の一時的な列を作成しました。この列には、担当者が「顧客」であるか「サプライヤー」であるかがリストされています。