【Laravel】Laravelで型の違う値でテーブルをjoinする方法 ('SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist)
Laravelで型の違う値でテーブルをjoinする方法
laravel4でテーブルをjoinしたらタイトルのようなエラーが。
production.ERROR: exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: integer = text
型の違うもの同士(integerとtext)でjoin使用としてますよお兄さん的な。
hoge.id(int型)
page.id(text型)
でjoinしなければならない場合、どちらかの型をもう一方の型に合わせなければいけない。
仮にhoge.idをtext型に合わせるとするとlaravelのクエリビルダーでは
... ->leftJoin('page', DB::raw('hoge.id::text'), '=', 'page.id') ...
と書けばjoinできる。(hogeテーブルにpageテーブルをjoinする場合)
ふーむ、なるほど( ´_ゝ`)