我的数据库上有一个表调用了主题(topic_id,topic_subject,topic_content,topic_date,topic_cat,topic_comm,topic_by,投票,标签,视图,标志),从这个表我希望回显 10个顶级用户(topic_by),具有特定社区(topic_comm)上最多的主题(最大主题数)。我应该使用什么PDO查询?我认为需要以下内容:
$sql = $conn -> prepare("SELECT topic_by WHERE topic_comm=:comm AND ( MAX COUNT(topic_id) )")
答案 0 :(得分:3)
让我们逐步构建查询。为了按社区的大多数主题获得前10名用户,您需要计算该社区中每个用户的主题数量。
SELECT topic_by, COUNT(*) AS total_topic FROM topic
WHERE topic_comm = :comm GROUP BY topic_by
然后,您想要获得前10位用户,您可以使用基本子查询和LIMIT
。所以最后的查询
SELECT * FROM (
SELECT topic_by, COUNT(*) AS total_topic FROM topic
WHERE topic_comm = :comm GROUP BY topic_by
) AS t ORDER BY t.total_topic DESC LIMIT 10