Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save hoodasaad/10533a780341bae7900514e0e9dcdaec to your computer and use it in GitHub Desktop.
Save hoodasaad/10533a780341bae7900514e0e9dcdaec to your computer and use it in GitHub Desktop.
Laravel Select Multiple Counts with multiple joins >> without leftJoin , GoupBy
$prefix = Config::get('database.connections.mysql.prefix');
$posts = App\Post::select(
'post.title'
,'post.pskey'
,'post.phone'
,'post.show_map'
,'post.publish_at'
,'city.city'
,'city_alias.alias as city_alias'
,'post_alias.alias'
,'category.title as category_title'
,'category.comments as category_comments'
,'category_alias.alias as category_alias'
,'user.name as user_name'
,DB::raw("(SELECT COUNT(alias_id) FROM {$prefix}visit_alias WHERE {$prefix}visit_alias.alias_id = {$prefix}post.alias_id) AS visits")
,DB::raw("(SELECT COUNT(post_id) FROM {$prefix}post_comment WHERE {$prefix}post_comment.post_id = {$prefix}post.post_id AND {$prefix}post_comment.status = 1) AS comments")
,DB::raw("(SELECT COUNT(alias_id) FROM {$prefix}favorite WHERE {$prefix}favorite.alias_id = {$prefix}post.alias_id AND {$prefix}favorite.status = 1) AS favorites")
)
->join('category','category.category_id','=','post.category_id')
->join('city','city.city_id','=','post.city_id')
->join('user','user.user_id','=','post.user_id')
->join('alias as category_alias','category_alias.alias_id','=','category.alias_id')
->join('alias as post_alias','post_alias.alias_id','=','post.alias_id')
->join('alias as city_alias','city_alias.alias_id','=','city.alias_id')
;
/* ------ continue with your custom sql ------ */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment