Laravel JOINの種類と違い クエリビルダ

IT関連

JOINの種類

言葉としてよく聞くのはこれだけ。CROSS JOINはほぼ使わないので除外。

  • JOIN
  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • LEFT OUTER JOIN
  • RIGHT OUTER JOIN

 

JOINを大別すると

  • 内部結合(INNER JOIN)
  • 外部結合(OUTER JOIN)

 

内部外部の違い

内部結合は、ONで結合できなかった行は返さない。

外部結合は、ONで結合できなかった行も返す。

(外部結合は左と右にわかれる)

 

略称と正式名称

色々あるけれど実は3種類だけ。()内が正式名称。

  • JOIN(INNER JOIN)
  • LEFT JOIN(LEFT OUTER JOIN)
  • RIGHT JOIN(RIGHT OUTER JOIN)

実際には()の正式名称は使わないので、覚えるのはJOINとLEFTとRIGHTだけ。

混同しそうになれば、INNERとかOUTERは無視すればいい。

 

ONの条件が一致したものだけ取得

JOIN

$users = DB::table('users')
->join

 

左のテーブルをメインに結合できなかったものも取得

LEFT JOIN

$users = DB::table('users')
->leftjoin

 

右のテーブルをメインに結合できなかったものも取得

RIGHT JOIN

$users = DB::table('users')
->rightjoin

 

コメント

タイトルとURLをコピーしました