Fuelphp:fuelphpでJOINしてデータを取得する方法

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`);