mysql - 选择具有总和的计数

标签 mysql

我想显示 Like 为 3 或更多的帖子总数;

我有3张 table

表格帖子:

id_post | title
1       | Ganteng
2       | serigala

表用户

id_user | username
1       | mantan
2       | otong
3       | pak_pol

表投票:

id_vote | id_post | LIKE | id_user
1       | 1       | 1    | 2
2       | 1       | 1    | 1
3       | 1       | 1    | 3
4       | 2       | 1    | 1
5       | 2       | 1    | 2
6       | 2       | 1    | 3

这是我的查询:

$sql="SELECT COUNT(v.id_post) as total_post
FROM vote v 
LEFT JOIN post p ON p.id_post=v.id_post
HAVING SUM(`like`) >= 3";

按照我的预期,$sql的值应该是2...但是返回的值是6

有答案吗?

非常感谢

最佳答案

有两个步骤要做:

  1. 查找所有获得超过两次点赞的帖子。 (因此按帖子分组,看看是否有超过两个点赞。)
  2. 计算这些帖子的数量。

查询:

select count(*)
from
(
  select id_post
  from vote
  group by id_post
  having count(*) >= 3
) well_liked_posts;

关于mysql - 选择具有总和的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28146072/

相关文章:

php - 通过连接表的特定 ID 对 mysql 结果进行排序

mysql - 具有相关性的全文搜索 - 为什么需要多列索引?

mysql - 如何提高 vtigercrm 机会模块的速度

php - 复杂的 SQL 查询 - 热门内容

PHP 更新查询未接收页面中已定义的变量

mysql - 将 'even numbered' 行插入到 mysql 中的现有表中

mysql - MySQL 中的行项目计数

c++ - 是否可以将 C++ UWP 应用程序链接到 Mysql 数据库?

mysql - 使用 MySQL 以秒为单位获取 ISO-8601(SCORM 2004) 持续时间格式

基于选择表单的jquery slider