テーブルとテストデータ作成
CREATE TABLE companies(
	id bigint primary key,
	name  varchar(50) NOT NULL,
	tel varchar(50)
);
CREATE TABLE employees(
	id bigint primary key,
	company_id bigint,
	name varchar(50) NOT NULL,
	age integer,
	FOREIGN KEY (company_id) references companies(id)
);
INSERT INTO companies(id, name, tel) VALUES
    (1, ‘株式会社ほげ’, ’00-0000-0000′),
    (2, ‘株式会社ふが’, ’00-0000-1111′),
    (3, ‘株式会社ぴよ’, ’00-0000-2222′);
INSERT INTO employees(id, company_id, name, age) VALUES
    (1, 1, ‘テスト太郎’, 25),
    (2, 1, ‘テスト次郎’, 20),
    (3, 2, ‘テスト三郎’, 30),
    (4, null, ‘テスト五郎’, 40);
### 内部結合(inner join)
結合条件に一致するレコードだけ表示
testdb=# SELECT
testdb-# e.id AS employee_id,
testdb-# e.name AS employee_name,
testdb-# c.id AS company_id,
testdb-# c.name AS company_name
testdb-# FROM employees e
testdb-# JOIN companies c ON c.id = e.company_id;
 employee_id | employee_name | company_id | company_name
————-+—————+————+————–
           1 | テスト太郎    |          1 | 株式会社ほげ
           2 | テスト次郎    |          1 | 株式会社ほげ
           3 | テスト三郎    |          2 | 株式会社ふが
### LEFT JOIN
左外部結合。左テーブルを全て表示し、結合条件に一致しない右テーブルはNULLとして結合
testdb=# SELECT
testdb-# e.id AS employee_id,
testdb-# e.name AS employee_name,
testdb-# c.id AS company_id,
testdb-# c.name AS company_name
testdb-# FROM employees e
testdb-# LEFT JOIN companies c ON c.id = e.company_id;
 employee_id | employee_name | company_id | company_name
————-+—————+————+————–
           1 | テスト太郎    |          1 | 株式会社ほげ
           2 | テスト次郎    |          1 | 株式会社ほげ
           3 | テスト三郎    |          2 | 株式会社ふが
           4 | テスト五郎    |            | 
### LIGHT JOIN
testdb=# SELECT
testdb-# e.id AS employee_id,
testdb-# e.name AS employee_name,
testdb-# c.id AS company_id,
testdb-# c.name AS company_name
testdb-# FROM employees e
testdb-# RIGHT JOIN companies c ON c.id = e.company_id;
 employee_id | employee_name | company_id | company_name
————-+—————+————+————–
           1 | テスト太郎    |          1 | 株式会社ほげ
           2 | テスト次郎    |          1 | 株式会社ほげ
           3 | テスト三郎    |          2 | 株式会社ふが
             |               |          3 | 株式会社ぴよ
(4 rows)
なるほど、これは勉強になる。