我有两个表和在第一条评论和文章id,在第二条标题,id,文章类别。我想要一篇评论最多的文章的标题。
SELECT comments.article_id, news.title, news.category_id,
COUNT(comments.id) as counts
FROM comments
JOIN news ON news.id = comments.article_id
GROUP BY(article_id)
ORDER BY counts DESC
LIMIT 3
我试过这个:
$articles = DB::table('comments')
->join('news', 'news.id', '=', ' comments.article_id')
->select(comments.article_id', 'news.title', ' news.category_id')
->count('comments.id')
->groupBy('article_id')
->orderBy(DB::raw('count(comments.id)', 'desc')
->limit(3)
->get();
但有:
Call to a member function groupBy() on integer
2条答案
按热度按时间pbpqsu0x1#
您使用的是“finisher”,意思是
->count('comments.id')
不返回的示例QueryBuilder
不过是普通类型(integer
).作为
integers
在php中,您试图在非类上执行一个方法,这导致显示此错误消息。你肯定知道其他的终结者喜欢
->sum()
,->all()
,->get()
, ...把你的台词去掉
->count('comments.id')
你就可以走了:q9yhzks02#
试试这个,如果你还面临任何问题,请告诉我。