SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access

SELECT文1


UNION [ ALL ]


SELECT文2

UNIONはSELECT文1の問い合せ結果とSELECT文2の問い合せ結果の和集合を求めるときに使用します。

このとき問い合せ結果の列数とデータ型が一致している必要があります。


関連キーワード





SQL実行例の説明(1)

T1_SAMPLE_BK表とT1_SAMPLE表、それぞれの問い合せ結果から和集合のデータを取得します。

・SELECT文1はT1_SAMPLE_BK表の問い合せ結果であるすべてのデータを取得します。

・SELECT文2はT1_SAMPLE表の問い合せ結果であるすべてのデータを取得します。


SELECT * FROM T1_SAMPLE_BK

UNION

SELECT * FROM T1_SAMPLE;


SQL実行の結果(1-1)

・T1_SAMPLE_BK表とT1_SAMPLE表の両方に格納されているデータはSERIAL203001203003(左)

・UNIONを使用した和集合では両方に含まれるデータ(重複したデータ)は一方のデータを取得することになります。(右)


SERIALI1_CODEI2_CODEI_COST
203001101102500
203002201206500
203003301309800
203004201205500
203005201205600
203006202205600

T1_SAMPLE


SERIALI1_CODEI2_CODEI_COST
191001101101500
191002201205500
191003301307800
191004201206500
203001101102500
203003301309800

T1_SAMPLE_BK

SQL Result
SERIALI1_CODEI2_CODEI_COST
191001101101500
191002201205500
191003301307800
191004201206500
203001101102500
203003301309800
203002201206500
203004201205500
203005201205600
203006202205600



SQL実行例の説明(2)

UNIONではALLキーワードを指定することで複数のSELECT文の問い合せ結果の和集合を求めるとき重複するデータも含めた和集合を求めることができます。


SELECT * FROM T1_SAMPLE_BK

UNION ALL

SELECT * FROM T1_SAMPLE;


SQL実行の結果(2-1)

・T1_SAMPLE_BK表とT1_SAMPLE表の両方に格納されている重複したデータはSERIAL203001203003の2件。(左)

・ALLキーワードが指定された和集合では重複したデータも含めたデータを取得することになります。(右)


SERIALI1_CODEI2_CODEI_COST
203001101102500
203002201206500
203003301309800
203004201205500
203005201205600
203006202205600

T1_SAMPLE


SERIALI1_CODEI2_CODEI_COST
191001101101500
191002201205500
191003301307800
191004201206500
203001101102500
203003301309800

T1_SAMPLE_BK

SQL Result
SERIALI1_CODEI2_CODEI_COST
191001101101500
191002201205500
191003301307800
191004201206500
203001101102500
203003301309800
203001101102500
203002201206500
203003301309800
203004201205500
203005201205600
203006202205600