gpt4 book ai didi

mysql - 需要获取最近 10 个活跃主题的用户

转载 作者:行者123 更新时间:2023-11-30 00:33:09 25 4
gpt4 key购买 nike

我想要获取在某个主题中发表评论的最后 10 位用户。

它没有按预期工作。

SELECT DISTINCT 
p.author, a.name
FROM posts p
INNER JOIN users a
ON a.id = p.author
AND topicId = ?
ORDER BY p.id
DESC LIMIT 10'


SELECT p.author, a.name
FROM posts.p
INNER JOIN users a
ON a.id = p.author
AND topicId = ?
GROUP BY p.author
ORDER BY p.id
DESC LIMIT 10

这行不通。我尝试将 group by 与 order by 结合起来。但这也不起作用..有什么建议吗?

结果与 ID 索引不匹配。

帖子表内容如下所示:

POST 1 -> user 1
POST 2 -> user 2
POST 3 -> user 3

结果:

2,1 etc. 

订单错误。

最佳答案

如果我理解正确,我认为这会做你想要的:

SELECT p.author, a.name
FROM posts p INNER JOIN
users a
ON a.id = p.author AND topicId = ?
GROUP BY p.author, a.name
ORDER BY max(p.id) DESC
LIMIT 10;

此查询与您的查询之间的主要区别始于显式聚合。然后,order by 使用 max(p.id) 进行排序。通过仅使用 p.id,MySQL 会从匹配的行中选择任意 id —— 对于您的目的而言,这可能是错误的。

关于mysql - 需要获取最近 10 个活跃主题的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22367350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com