我正在使用以下查询从多个表中获取计数:-
SELECT
b.sales_title,
c.cat_name,
count(b.sales_id) as cnt,
count(e.comment_id) as coun
FROM tb_sale_report a
inner join tbl_sales b on a.sales_id=b.sales_id
inner join tb_category c on c.cat_id=b.category_id
left join tb_comment e on b.sales_id=e.sales_id
GROUP BY b.sales_title
我正在努力实现
sales_title | cat_name | cnt | coun
--------------------------------------------------
Affiliate | Kids toys | 8 | 0
Date Check | Handbags | 26 | 1
Date Date | My Category | 4 | 1
Future Date | Handbags | 3 | 0
Giovanni | Kids toys | 4 | 1
但是我没有得到错误的计数,coun
列的值像这样出错了,
sales_title | cat_name | cnt | coun
---------------------------------------------
Affiliate | Kids toys | 8 | 0
Date Check | Handbags | 26 | 26
Date Date | My Category | 4 | 4
Future Date | Handbags | 3 | 0
Giovanni | Kids toys | 4 | 4
我如何编写查询来实现我的目标。需要帮助,我是编程新手。提前致谢
最佳答案
除非您告诉我们您的表结构/提供一小段可以复制您问题的数据,否则很难判断。看起来您的评论表正在被复制,以便执行与 tbl_sales
表的联接,因此计数中有重复项。
尝试 COUNT(DISTINCT e.comment_id) as coun
来消除此问题。
关于mysql - 使用左连接从多个表中获取计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9223229/