Hav*_*avi 1 mysql count sql-order-by left-join
我希望发布此内容是合法的,因为我知道有关此主题的其他类似帖子。但是我无法使其他解决方案起作用,因此尝试发布我自己的场景。几乎在像这样的其他示例中,我不确定他们如何使用表名和行。是通过标点符号吗?
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
Run Code Online (Sandbox Code Playgroud)
我有一个包含文章的表,以及一个每次阅读文章时都会获取新记录的统计表。我正在尝试通过计算统计表中该文章 id 的记录数来对我的文章表进行排序。就像“按视图排序”功能一样。
我的 2 个表:
文章
id
Run Code Online (Sandbox Code Playgroud)
统计数据
pid <- same as article id
Run Code Online (Sandbox Code Playgroud)
查看其他示例,我缺少左连接。只是无法解决如何工作。我现在的查询是这样的: $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
Run Code Online (Sandbox Code Playgroud)
想法:
NULL,即使用左连接COUNT只计算非NULL值,所以按右表计算以给出正确的零结果GROUP BY 为每篇文章准确获取一个结果行,即对每篇文章单独统计统计信息| 归档时间: |
|
| 查看次数: |
2653 次 |
| 最近记录: |