Qazxswpoi小提琴。
here
这是我正在使用的查询的简化部分,它在小提琴上完全按照我需要的方式工作,它将每个SELECT UserId,totalLikes FROM Users
LEFT JOIN(select ownerId, PostId from Posts) a ON ownerId = UserId
LEFT JOIN(select idOfPost, count(idOfPost) AS totalLikes from Likes) b ON idOfPost = PostId
WHERE UserId = 120 GROUP BY UserId
计为属于指定用户的每个帖子,在这种情况下idOfPost
和它分组结果是一行。
但当我在where UserId = 120
运行这个我得到以下错误WAMP
女巫我认为是因为我需要分组#1140 this is incompatible with sql_mode=only_full_group_by
,但如果我这样做我得到多行,自然因为帖子的ID不同但我想要把它放在一排。
所以我的问题是:我应该禁用PostId
女巫我不确定会有什么影响,或者我的表格结构有问题需要更改,可能包括sql_mode=only_full_group_by
表格中的UserId
,或者我的查询是错误,需要改变?
WAMP上的mysql版本5.7.14
在子查询中使用Likes
,在主查询中使用GROUP BY
聚合:
sum()
SELECT UserId, sum(totalLikes) AS totalLikes
FROM Users
LEFT JOIN Posts a ON ownerId = UserId
LEFT JOIN (
select idOfPost, count(idOfPost) AS totalLikes
from Likes
group by idOfPost) b ON idOfPost = PostId
WHERE UserId = 120
GROUP BY UserId