gpt4 book ai didi

mysql - 从另一个表按计数排序

转载 作者:行者123 更新时间:2023-11-29 04:51:14 25 4
gpt4 key购买 nike

我希望发布此帖子是合法的,因为我知道关于此主题的其他类似帖子。但是我无法让其他解决方案起作用,所以尝试发布我自己的场景。几乎在像这个这样的其他例子中,我不确定他们如何使用表名和行。是通过标点符号吗?

 SELECT bloggers.*, COUNT(post_id) AS post_count
FROM bloggers LEFT JOIN blogger_posts
ON bloggers.blogger_id = blogger_posts.blogger_id
GROUP BY bloggers.blogger_id
ORDER BY post_count

我有一个包含文章的表格,以及一个每次阅读文章都会获得新记录的统计表格。我正在尝试通过计算统计表中该文章 ID 的记录数来对我的文章表进行排序的查询。就像“按 View 排序”功能。

我的 2 个表:

文章

id

统计数据

pid <- same as article id

查看其他示例,我缺少左连接。只是无法全神贯注于如何工作。我现在的查询是这样的: $query = "SELECT *, COUNT(pid) AS views FROM statistics GROUP BY pid ORDER BY views DESC";

非常感谢任何帮助!

最佳答案

SELECT article.*, COUNT(statistics.pid) AS views
FROM article LEFT JOIN statistics ON article.id = statistics.pid
GROUP BY article.id
ORDER BY views DESC

想法:

  • 使用连接合并两个表
  • 如果一篇文章没有统计数据,则填NULL,即使用left join
  • COUNT 只计算非NULL 值,因此按正确的表格计算以给出正确的零结果
  • GROUP BY 为每篇文章得到一个结果行,即单独统计每篇文章

关于mysql - 从另一个表按计数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411304/

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