ホーム DoRuby joinをベン図で表現
joinをベン図で表現
 

joinをベン図で表現

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

joinとは

 joinは、データベースの検索時に複数のテーブルをまとめて、検索を行うsql文です。joinには、内部結合と外部結合の2種類の方法が存在します。これらの説明は、次のセクションで行います。

内部結合(inner join)

 内部結合は、複数のテーブルを結合するときに指定する条件式に当てはまるデータのみ取得します。sqlは以下のように書きます。また、inner joinjoinと省略することもできます。
select * from テーブルA inner join テーブルB on 条件式
 内部結合の結果がどこを表しているのか分かりやすく説明する為に、数学の集合を図で表現するベン図を用いて説明します。先ほども説明しましたが内部結合は、テーブルAとテーブルBのデータを含んでいる(紐づいている)データを取得します。数学の集合で表現するとテーブルA ⋂ テーブルBになります。
enter image description here

外部結合(left outer join, right outer join)

 外部結合は内部結合とは違い、結合元のデータをすべて取得し、条件式に当てはまるデータに関しては、結合先のデータも取得します。ここで言う結合元,結合先をsql文で説明すると、テーブルAが結合元、テーブルBが結合先となります。また、left outer join,right outer joinは、left join,right joinに省略することができます。
select * from テーブルA left outer join テーブルB on 条件式
 left joinは、「結合元のデータを全て取得し、条件式に当てはまる結合先のデータも取得」します。
enter image description here
 right joinは、「結合先のデータを全て取得し、条件式に当てはまる結合元のデータも取得」します。
enter image description here

まとめ

  • 紐づいているデータのみ取得したい場合
    • 内部結合
  • データを全て取得し、関連データも取得したい場合
    • 外部結合
記事を共有

最近人気な記事