異なるテーブルの結合

こんにちわ、masumasuです。

8月がもうすぐ終わりますが、まだまだ猛暑が続くそうです。

くれぐれも体調管理にはお気を付けください。

表題通り、クエリビルダを使用して異なるテーブルの結合をするときの方法を記載します。

内部結合 (join)

joinメソッドは複数のテーブルを内部結合するメソッドです。

$costumes = DB::table('costumes') //主となるテーブル名
    ->select('costume.id', 'costume.name', 'orders.id as order_id,', 'orders.name as order_name') 
    ->join('orders', 'costumes.order_id', '=', 'orders.id') 
    ->get();

(join)箇所には第一引数に結合するテーブル名、第二引数に主テーブルの結合キー、第四引数に結合するテーブルの結合キーを記述します。

内部結合は、結合条件に当てはまるものだけを抽出し結合されます。

外部結合 (leftjoin)

leftjoinメソッドは複数のテーブルを左外部結合するメソッドです。

$costumes = DB::table('costumes') //主となるテーブル名
    ->select('costume.id', 'costume.name', 'orders.id as order_id,', 'orders.name as order_name')
     ->leftjoin('orders', 'costumes.order_id', '=', 'orders.id')
     ->get();

左外部結合は、主テーブルのデータを結合しなかったデータも含めてすべて出力します。

終わりに

以上が、異なるテーブルの結合方法です。

ご覧いただきありがとうございました。