请有人帮我将此SQL查询转换为Laravel 5.4 Query Builder语法。我已经搜索了解决方案并发现了一些但并不完全符合我的想法。
我有3张桌子:
饲料: - feed_id - 用户身份 - feed_title
用户: - ID - 用户名
Commments: - comment_id - feed_id - 文字 - user_id
在我的观看结果中,我想查看Feed标题,用户的用户名以及每个Feed的所有评论计数。就像你在Facebook上看到的那样:显示每个帖子的评论数量。我真的需要这样做:
这是我在MySQL数据库中尝试过的SQL代码,它在那里工作但是当我尝试在Laravel中实现相同时返回错误
select *, count(comments.comment_id) as comment_count
from `feeds`
inner join `users` on
`feeds`.`user_id` = `users`.`id`
inner join `comments` on
`feeds`.`feed_id` = `comments`.`comment_feed_id`
group by `comments`.`comment_feed_id`
答案 0 :(得分:0)
这应该这样做,假设您的模型名称为" Feed":
Feed::selectRaw('feeds.*, count(comments.comment_id) as comment_count')
->join('users', 'users.id', '=', 'feeds.user_id')
->join('comments', 'feeds.feed_id', '=', 'comments.comment_feed_id')
->groupBy('comments.comment_feed_id')->get();
答案 1 :(得分:0)
DB::table('feeds')
->selectRaw('*, count(comments.comment_id) as comment_count')
->join('users', 'users.id', '=', 'feeds.user_id')
->join('comments', 'feeds.id', '=', 'comments.comment_feed_id')
->groupBy('comments.comment_feed_id')
->get();