【DB入門】テーブルの結合(LEFT JOIN)

2019年10月4日

スポンサーリンク

テーブルの結合

ーブルに対してSELECTをする時、そのテーブルだけでは情報が足りない場合、他のテーブルを含めデータを取得することができます。

 

イメージ

次のテーブルは、「学年マスタ」です。この情報だけでは、学校名がわからないため学校マスタを結合して取得してみます。

 

学年マスタに対し学校マスタをぶつける(結合する)イメージです。
この2つのテーブルは、school_code(学校コード)が一致するデータを結合します。

 

結合した結果は下のようになります。
学校コード=sch001のみが一致するので、学校マスタのsch002,sch003のデータは結合されません。

 

LEFT JOIN

上のイメージのように結合するには「LEFT JOIN」を使用します。

(書籍とかでは、)LEFT OUTER JOINと書いてある場合もあると思いますが全く同じです。OUTERはあってもなくてもどちらでも構いません。

select * from テーブル名1
left join テーブル名2
on テーブル名1.列 = テーブル名2.列; --結合する列を指定します。(列名は一致しなくてもOKです。)

テーブルが3つあったときは次のようになります。

select * from テーブル名1
left join テーブル名2 on テーブル名1.列 = テーブル名2.列
left join テーブル名3 on テーブル名1.列 = テーブル名3.列;

 

SELECT文

「サンプル」で説明したSQLを記載します。
select * From m_grade
inner join m_school on 
m_grade.school_code = m_school.school_code;

 

実行結果は画像のようになります。

 

 

次に

次はテーブルを結合する方法のうち内部結合(INNER JOIN)について紹介します。

【DB入門】テーブルの結合(INNER JOIN)

一つ前の説明はこちらです。

【DB入門】条件分岐(CASE文)