gpt4 book ai didi

php - Mysql查询在左连接中返回错误结果

转载 作者:可可西里 更新时间:2023-11-01 08:25:59 26 4
gpt4 key购买 nike

我正在使用 Codeigniter 和 MySQL。我有两个表名,分别是 informationreview

我附上了我的信息表的截图。

enter image description here

这是我的评论

enter image description here

这是我的info_img

enter image description here

现在,我想根据 mytable 通过 information id 获得 review 的总数。

在这里,我写了这样的查询:

SELECT 
info.*,
info_img.name AS image,
COUNT(rev.review_id) AS total
FROM
information AS info
LEFT JOIN
info_img ON info.information_id = info_img.information_id
LEFT JOIN
review AS rev ON rev.information_id = info.information_id
WHERE
info.status = 1
AND FIND_IN_SET('3', info.category)
GROUP BY rev.information_id
ORDER BY info.information_id ASC
LIMIT 0 , 3

我对 information_id = 8 的评论数为 18,这是错误的。而不是它,我希望 information_id = 8 的评论计数为 6。

最佳答案

我认为你所要做的就是在你的计数中添加不同的..:

select info.*,info_img.name as image,count(distinct rev.review_id) as total
from information as info
left join info_img
ON info.information_id = info_img.information_id
left join review as rev
ON rev.information_id = info.information_id
WHERE info.status =1
AND FIND_IN_SET('3', info.category)
GROUP BY rev.information_id
order by info.information_id Asc
LIMIT 0,3

它发生的原因可能是因为信息表正在乘以结果(看起来是 3)所以每个 review_id 将被计算 3 次,因此 - count distinct

关于php - Mysql查询在左连接中返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35721024/

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