思考停止するな

ネットワークとかアプリケーションとかWebとか

内部結合と外部結合について

スポンサーリンク

内部結合と外部結合についてです。

内部結合

内部結合では左右それぞれのテーブルで結合条件に使用した値が一致するレコードだけが抽出される。
そのため、どちらかのテーブルにしか存在しないデータは取得されない。

INNER JOIN


f:id:shimonss:20170305094947p:plain

select * from アイテムテーブル inner join ユーザテーブル on アイテムテーブル.ユーザID = ユーザテーブル.ユーザID;

出力結果
f:id:shimonss:20170305095007p:plain

外部結合

外部結合では左右それぞれのテーブルの結合条件の値が一致するレコードに加え、左右どちらかのテーブルの全てのデータが出力される。
存在しないデータはNULLが入る。

LEFT OUTER JOIN

左側のテーブルをベースとして結合する。左側に指定されたテーブルの全てのレコードが取得され、右側のテーブルからは結合条件に一致したものだけが抽出される。


f:id:shimonss:20170305095844p:plain

select * from アイテムテーブル left outer join ユーザテーブル on アイテムテーブル.ユーザID = ユーザテーブル.ユーザID;

出力結果
f:id:shimonss:20170305095905p:plain

RIGHT OUTER JOIN

右側のテーブルをベースとして結合する。右側に指定されたテーブルの全てのレコードが取得され、左側のテーブルからは結合条件に一致したものだけが抽出される。

select * from アイテムテーブル right outer join ユーザテーブル on アイテムテーブル.ユーザID = ユーザテーブル.ユーザID;

出力結果
f:id:shimonss:20170305100145p:plain

以上、内部結合と外部結合について説明してみました。