I have tried similar things but I never seem to be able do it without using DB:raw
, if you find a way I would love to know.
Setting::select("settings.*")
->leftJoin(DB::raw("(SELECT COUNT(*) AS counter FROM favorites GROUP BY setting_id) favorites", "favorites.setting_id", "=", "settings.id")
->where("settings.state", "=", 1)
->orderBy("favorites.counter", "DESC");
Hi ! Are you sure your solution works because you don't return 'favorites.setting_id' from your leftJoin raw select so Eloquent can't perform the ON join clause.
Maybe bellow link example can help you : http://itsolutionstuff.com/post/laravel-5-join-with-subquery-in-query-builder-exampleexample.html
Sign in to participate in this thread!
The Laravel portal for problem solving, knowledge sharing and community building.
The community