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
コメント