FULL OUTER JOIN

testdb=# \d member
                             Table "public.member"
 Column  |  Type   | Collation | Nullable |              Default               
---------+---------+-----------+----------+------------------------------------
 no      | integer |           | not null | nextval('member_id_seq'::regclass)
 name    | text    |           |          | 
 tel     | integer |           |          | 
 groupno | integer |           |          | 
 boss    | text    |           |          | 

testdb=# \d department
                   Table "public.department"
  Column   |       Type        | Collation | Nullable | Default 
-----------+-------------------+-----------+----------+---------
 groupno   | integer           |           |          | 
 groupname | character varying |           |          | 
 grouptel  | character(11)     |           |          | 
 boss      | text              |           |          | 
testdb=# SELECT * FROM member FULL OUTER JOIN department USING (groupNo);
 groupno | no | name |    tel     |  boss  | groupname |  grouptel   | boss 
---------+----+------+------------+--------+-----------+-------------+------
       2 |  1 | 佐藤 | 1201234567 | 佐々木 | 技術部    | 01219234569 | 田中
       1 |  2 | 鈴木 | 1201234568 | 原田   | 営業部    | 01209234567 | 原田
       4 |  3 | 渡辺 | 1201234569 | 天野   |           |             | 
       3 |    |      |            |        | 管理部    | 01209234566 | 岩本
(4 rows)

■OUTER JOIN (外部結合)

対象のテーブルから、結合キーの値が等しいデータに加えて、条件に一致しなかったデータも取得します。NATURALを用いると、名前が同じカラムを全て結合キーに指定します。
条件に一致しなかったデータをどのテーブルから取得するかはLEFT、LIGHT、FULLの中から選択します。
・LEFT:左側のテーブル(書式ではテーブル名1)から条件に一致しないデータを取得
・RIGHT:右側のテーブル(書式ではテーブル名2)から条件に一致しないデータを取得
・FULL:両側のテーブル(書式ではテーブル名1と2)から条件に一致しないデータを取得

この記事が気に入ったらサポートをしてみませんか?