PostgreSQLで2つのテーブルに基づいてレコードを扱う方法です.

目次

  1. 2テーブルのレコードを合体する(UNION)
  2. 共通するレコードを抽出する(INTERSECT)
  3. 他方のテーブルに存在するレコードを取り除く(EXCEPT)
  4. 参考文献

2テーブルのレコードを合体する(UNION)

2つのテーブルから抽出したレコードを合体させるには(=和集合を作るには),UNIONを使います.

SELECT
UNION
SELECT

テーブル間で重複するレコードを残すなら,UNION ALLを使います.

共通するレコードを抽出する(INTERSECT)

2つのテーブルから抽出したレコードの共通部分を得るには(=積集合を作るには),INTERSECTを使います.

SELECT
INTERSECT
SELECT

テーブル間で重複するレコードを残すなら,INTERSECT ALLを使います.

他方のテーブルに存在するレコードを取り除く(EXCEPT)

最初のテーブルで抽出したレコードから後のテーブルに含まれるレコードを除去するには(=差集合を作るには),EXCEPTを使います.

SELECT
EXCEPT
SELECT

参考文献

SQLの方言に配慮しつつ,リレーショナルデータベースの操作を一から説明している入門書です.

  • ミック (2016)「SQL」第2版,翔泳社.