php mysql group by_php – 如何在mysql查询中解决“不在GROUP BY中”错误
我有兩個模型:帖子和喜歡有一對多的關系(所以,一個帖子有很多喜歡). Likings模型還有一個isActive字段,表示喜歡是主動還是被動.
我想獲得(排序)前5個帖子,這些帖子已經收到了最大的“活躍”喜歡(只有喜歡其isActive字段為true的帖子才會被考慮).
這是查詢:
select posts.*, count(likings.id) as likes_count from 'posts'
left join 'likings' on 'likings'.'post_id' = 'posts'.'id' and 'likings'.'isActive' = 1
group by 'posts'.'id'
order by 'likes_count' desc
limit 5
這是由這個laravel查詢產生的:
Post::selectRaw('posts.*, count(likes.id) as likes_count')
->leftJoin('likes', function ($join) {
$join->on('likes.post_id', '=', 'posts.id')
->where('likes.is_active', '=', 1);
})
->groupBy('posts.id')
->orderBy('likes_count', 'desc')
->take(5)
->get();
這是錯誤:
SQLSTATE[42000]: Syntax error or access violation: 1055
'database.posts.user_id' isn't in GROUP BY
這里,posts.user_id也是posts表的一個字段,并顯示帖子的所有者.
我該如何解決這個錯誤?似乎改變mysql配置(可能刪除ONLY_FULL_GROUP_BY模式)是不合邏輯的,但查詢中的變化最小.
總結
以上是生活随笔為你收集整理的php mysql group by_php – 如何在mysql查询中解决“不在GROUP BY中”错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言的编译器常见的有哪些?
- 下一篇: java jdbc mysql url_