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 NATURAL FULL OUTER JOIN department;
 groupno |  boss  | no | name |    tel     | groupname |  grouptel   
---------+--------+----+------+------------+-----------+-------------
       2 | 佐々木 |  1 | 佐藤 | 1201234567 |           | 
       1 | 原田   |  2 | 鈴木 | 1201234568 | 営業部    | 01209234567
       4 | 天野   |  3 | 渡辺 | 1201234569 |           | 
       3 | 岩本   |    |      |            | 管理部    | 01209234566
       2 | 田中   |    |      |            | 技術部    | 01219234569
(5 rows)

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


いいなと思ったら応援しよう!