gpt4 book ai didi

mysql sum返回错误的值

转载 作者:行者123 更新时间:2023-11-29 01:55:40 25 4
gpt4 key购买 nike

你好,所以我在下面的查询中遇到了这个问题,在 wp_wti_like_post 中,我有许多行具有相似的 post_idvalue 列作为 1-1
所以假设对于 ID 为 727 的帖子,我只有一行,所以 sum 应该是 1,但不知道为什么会这样返回 4 并且当有 two 行时 727 它确实返回 8 查询如下:

SELECT wp_posts. * , 
SUM( wp_wti_like_post.value ) -4 AS total_sum,
wp_wti_like_post.post_id
FROM wp_posts
INNER JOIN wp_term_relationships ON ( wp_posts.ID =
wp_term_relationships.object_id )
INNER JOIN wp_term_taxonomy ON ( wp_term_relationships.term_taxonomy_id =
wp_term_taxonomy.term_taxonomy_id )
JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
LEFT JOIN wp_wti_like_post ON ( wp_posts.ID = wp_wti_like_post.post_id )
WHERE wp_term_taxonomy.taxonomy = 'category'
AND wp_term_taxonomy.term_id IN ('$c_cid')
AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish')
GROUP BY wp_posts.ID
HAVING SUM( wp_wti_like_post.value ) > $min_like
ORDER BY wp_posts.post_date DESC

最佳答案

您在许多表之间使用连接,并且它们中的任何一个都有可能与 post_id 有很多关联,因此您的 sum 不正确 我建议您使用子选择你喜欢的表并在子选择中计算总和然后加入你的主查询

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 为每个帖子存储不同的属性,所以我猜这是表正在生成更多行,这就是计算错误总和的原因。

从查询中删除了 -4

关于mysql sum返回错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29966003/

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