【发布时间】:2014-09-21 07:12:39
【问题描述】:
我编写了以下 join 查询以使用 聚合 函数获取报告
SELECT users.id, SUM(orders.totalCost) AS bought, COUNT(comment.id) AS commentsCount, COUNT(topics.id) AS topicsCount, COUNT(users_login.id) AS loginCount, COUNT(users_download.id) AS downloadsCount
FROM users
LEFT JOIN orders ON users.id=orders.userID AND orders.payStatus=1
LEFT JOIN comment ON users.id=comment.userID
LEFT JOIN topics ON users.id=topics.userID
LEFT JOIN users_login ON users.id=users_login.userID
LEFT JOIN users_download ON users.id=users_download.userID
GROUP BY users.id
ORDER BY bought DESC
但我不知道为什么会得到以下输出?
聚合函数的结果相乘!!!
不知道为什么?
例如,对于最后一行,我希望得到以下结果
821 | 48000 | 63 | 0 | 10 | 10
执行EXPLAIN查询的结果如下所示
【问题讨论】:
-
显示您的预期结果集并提供适当的 ddls 以及一些示例数据@Sql Fiddle
-
@MKhalidJunaid 在我的更新中看到预期的结果。除 id 列外,列的结果相乘
标签: mysql database join indexing aggregate-functions