こんにちわ、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();
左外部結合は、主テーブルのデータを結合しなかったデータも含めてすべて出力します。
終わりに
以上が、異なるテーブルの結合方法です。
ご覧いただきありがとうございました。