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