ソノウチイエオカウ

タイトルと無関係な個人用の技術メモ

FuelPHP ◇ DB::queryで表を結合したクエリの件数をDB::count_last_query()で取得すると duplicate column name 'id'エラーになる

DB::queryで表を結合したクエリの件数をDB::count_last_query()で取得すると duplicate column name 'id'エラーになる場合がある

 

これは、migrate等でテーブルを自動生成した場合、id列が自動で付加される為、結合する両方のテーブルにid列が存在してしまう。

よって、クエリで取得カラムを指定していない(もしくは*で指定)場合、id列の重複エラーとなる。

但し、count_last_queryではなく、普通にselectする場合は、エラーとならない(重複したカラムが自動でリネームされるため)

 

count_last_query時のエラーを回避するには取得カラムを適切に設定する(1テーブル全項目の場合は、table名.*でもいいが)