我想显示3个或更多的总帖子;
我有3张桌子
表格帖子:
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
任何答案?
非常感谢
答案 0 :(得分:0)
您正在寻找的是Distinct Count。对于Distinct,在您使用的SQL中使用正确的语法,请使用它。
作为回应Jens对Like是关键字的有效评论,我使用方括号来限定它。使用您所用语言的相应语法来限定可能的关键字字段名称。
$sql="SELECT COUNT(***DISTINCT*** p.id_post) as total_post
FROM post p
LEFT JOIN vote v ON p.id_post=v.id_post
HAVING SUM([like]) >= 3";
答案 1 :(得分:0)
有两个步骤:
查询:
select count(*)
from
(
select id_post
from vote
group by id_post
having count(*) >= 3
) well_liked_posts;