简体   繁体   中英

query to laravel query builder

i am building a some of news website an i want to know how many sub categories there in a category. I build this query. (it works on my database) now i want i convert it to laravel query builder but i can't get it working.

Raw query:

   SELECT news_categories.id,
          news_categories.name,
          news_categories.description,
          count(nc.id)
     FROM happyalphen.news_categories 
LEFT JOIN news_categories nc ON nc.category_parent = news_categories.id 
    WHERE news_categories.category_parent = 0 
 GROUP BY news_categories.id ;

what i have now

DB::table('news_categories')
    ->selectRaw('news_categories.id')
    ->join('news_categories subCat', 'news_categories.category_parent', '=', 'subCat.id')
    ->where('news_categories.category_parent','=',0)
    ->groupBy('news_categories.id')
    ->get();

Table layout

桌子布置

i found it (Thanks Jarek Tkacyk)

i was forgot the 'AS' in the join that laravel stop with the query.

DB::table('news_categories')
   ->selectRaw(' `news_categories`.`id`, `news_categories`.`name`, `news_categories`.`description`, `news_categories`.`color`, `news_categories`.`text_color`, count(`SubCat`.`id`) as SubCatCount ')
   ->join('news_categories as subCat', 'subCat.category_parent', '=', 'news_categories.id','left')
   ->where('news_categories.category_parent','=','0')
   ->groupBy('news_categories.id')
   ->get();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM