内部結合と外部結合の違い

LEFT INNER JOIN

左側のテーブルの外部キーを元に、右側のテーブルの主キーと結合させる。該当するレコードが右側テーブルにない場合には、そのレコードは除外される。

レコードのデータは常に完全。

| 左外部キー | 右主キー |
-----------------------
|        1 |       1 |
|        2 |       2 |
|        3 |       3 |

LEFT OUTER JOIN

左側のテーブルの外部キーに対して、右側のテーブルの主キーと結合させる。該当するレコードが右側テーブルにない場合には、相当する右側テーブルのカラム部分は NULL で埋められる。

レコードの右側データは欠けている可能性がある。

| 左外部キー | 右主キー | 右データ  |
----------------------------------
|        1 |       1 | 右データ1 |
|        2 |       2 | 右データ2 |
|        3 |       3 | 右データ3 |
|        4 |    NULL |     NULL |

参考:

SQL素人でも分かるテーブル結合(inner joinとouter join) – Qiita

Rails における内部結合、外部結合まとめ – Qiita

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です