実現したいこと
・belongsToManyで生成されるSQLがとても長い文字列になってしまうため、変更したい
前提
Laravle5.8、EloquentのWebシステムです。
発生している問題・エラーメッセージ
aaas.idのカンマ区切りリストが大量になり、SQL文の文字数が長くなってしまいます。
本来であればin句ではなくjoinで結合したいのですが、うまくいきません。
SQL文
select `cccs`.*, `bbbs`.`aaa_id` as `pivot_aaa_id`, `bbbs`.`ccc_id` as `pivot_ccc_id` from `cccs` inner join `bbbs` on `ccc`.`id` = `bbb`.`ccc_id` where `bbbs`.`bbb_id` in (aaas.idのカンマ区切りリスト)
該当のソースコード
return $this->belongsToMany(\App\Models\ccc::class, 'bbb', 'aaa_id', 'ccc_id') ->select( 'bbb.*' );
試したこと
以下のように修正してみましたが、エラーになります。
return $this->select(
'bbbs.*'
)
->join('bbbs', 'serialresults.aaa_id', '=', 'aaas.id')
->join('cccs', 'cccs.id', '=', 'bbbs.ccc_id')
補足情報(FW/ツールのバージョンなど)

あなたの回答
tips
プレビュー