您好,所以我在以下查询中遇到此问题,在wp_wti_like_post
内部,我的行数与post_id
相似,value
列为1
或{{ 1}}。
因此,对于标识为-1
的帖子,请说我只有一行,因此727
应为sum
,但不知道为什么会返回1
1}}当有4
行two
时,它返回727
查询如下:
8
答案 0 :(得分:3)
你在许多表中使用连接,并且它们中的任何一个都可能有post_id
的许多关联,因此你的sum is incorrect
我建议你使用子选择你的表并计算在子选择中求和,然后加入主查询
SELECT
p.*, COALESCE(l.sum_like,0) AS total_sum,
l.post_id
FROM
wp_posts p
INNER JOIN wp_term_relationships ttr
ON (p.ID = ttr.object_id)
INNER JOIN wp_term_taxonomy tt
ON (ttr.term_taxonomy_id = tt.term_taxonomy_id)
LEFT JOIN (
SELECT post_id ,SUM(`value`) sum_like
FROM wp_wti_like_post
GROUP BY post_id
) l ON (p.ID = l.post_id)
WHERE tt.taxonomy = 'category'
AND tt.term_id IN ('21')
AND p.post_type = 'post'
AND (p.post_status = 'publish')
HAVING total_sum > 2
ORDER BY p.post_date DESC
另请注意,我已删除了wp_postmeta
加入,因为它未在您的选择条件中使用,并且您的过滤条件中也没有wp_postmeta
为每个帖子存储不同的属性,所以我猜这个表格会产生更多的行数计算错误总和的原因。
Removed -4 from query