Laravelでちょっと複雑なSQLを書かなければいけない時、サブクエリを使いたくなる場合があると思います。
その際にどう書くのが良いか、色々試した結果、今の所の個人ベストプラクティスを記載します!

書き方
それは、fromSub()メソッドを使う方法です!
$subQuery = DB::table('hoge')
->where('id', 1)
->select('col1');
DB::query()
->fromSub($subQuery, 'sub')
->leftJoin('hoge2', 'sub.id', '=', 'hoge2.id')
->...
mergeBindings()を使う方法もありますが、SQLパラメータのことを考慮する必要がありそうで、その辺を気にせずに使えるfromSub()の方が圧倒的に使いやすそうでした!!
ぜひ、お試しあれ~
オススメ


コメント