FuelphpでQuery_Builder_Selectクラスのjoinメソッドを使用しました。
データベースからデータを取得する際に複数のテーブルを結合して、
データを取得することがあります。
JOINを使用すれば異なるテーブルを結合してデータを取得することが可能です。
下記にFuelphpのjoinメソッドを使用して、複数のテーブルを結合しデータを取得する時の方法をメモします。
■ Fuelphpで複数のテーブルをJOINしてデータを取得
joinメソッドとonメソッドの記述方法は下記のようになります。
【joinメソッド】
join('テーブル', 'タイプ')
タイプには「INNER」「LEFT」「RIGHT」などを指定します。
【onメソッド】
on('テーブル.カラム', '=', 'テーブル.カラム')
※テーブル「item」「item_detail」をJOINする場合
・itemテーブルのデータを取得する場合
$query = \DB::select()->from('item'); $res = $query->execute()->as_array();
SELECT * FROM `item`;
・itemテーブルとitem_detailテーブルをJOINしてデータを取得する場合
$query = \DB::select()->from('item'); $query->join('item_detail', 'LEFT'); $query->on('item.id', '=', 'item_detail.item_id'); $res = $query->execute()->as_array();
SELECT * FROM `item` LEFT JOIN `item_detail` ON (`item`.`id` = `item_detail`.`item_id`);