【SQL】INNER JOINとLEFT JOINと RIGHT JOINの違いをまとめた。


Microsoft-SQL-Server

前提知識

メインテーブル結合テーブルが存在する。
テーブルをJOIN(結合)するとき、どちらのテーブルをメイン(主)と捉えるかということ。

■内部結合(INNER JOIN)

 

⇒条件に一致しないレコードは取得しない。
両方のテーブルに存在するレコードだけ取得する。
⇒メインテーブルと結合テーブルとを入れ替えても、結果は変わらない。

■外部結合(OUTER JOIN)

 

どちらか片方のテーブルにデータがあればレコードが取得される。

以下の3種類ある。
①LEFT OUTER JOIN(左外部結合)
②RIGHT OUTER JOIN(右外部結合)
③FULL OUTER JOIN(完全外部結合)➱機会があったらまとめる

・LEFT OUTER JOIN

左側に書いた方をメインテーブルにする
メインテーブルに存在するレコードは、結合テーブルに同じキーのレコードが無くても全て取得される。
結合テーブルだけにしか存在しないレコードは取得されない。

・ RIGHT OUTER JOIN

メインテーブルをJOINの右側に書く。
(LEFTと同じ)メインテーブルに存在するレコードは、結合テーブルに同じキーのレコードが無くても全て取得される。
(LEFTと同じ)結合テーブルだけにしか存在しないレコードは取得されない

■LEFT OUTER JOINとRIGHT OUTER JOINの使い分け

 

特に無し。
基本的に外部結合をする際は統一した方がいい。
文章は左から読むので、左をメインとする「LEFT OUTER JOIN」をメインで使おうかな。

この記事がお役に立てたら、是非シェアをお願いします^^