我有一个连接问题和SUM()
。Mysql:SUM加入表值
我有两个表,agents(id, name)
和orders(id, agent_id, total)
。
现在,我需要一个所有代理商的列表,统计他们放置了多少个订单和所有订单的总数。这里是我的基本查询:
SELECT
agents.*,
COUNT(DISTINCT orders.id) total_orders,
SUM(orders.total) total_amount
FROM agents
LEFT JOIN orders ON agents.id = orders.agent_id
GROUP BY agents.id
的total_orders
是正确的,但total_amount
不是。每个代理商都有错误的SUM()
甚至没有订购任何东西的人都有价值。
在一个查询中可以吗?我不想在循环中再次查询。
如果订单表上的order.id' id pk不需要'DISTINCT orders.id'。 –
你能告诉我们一些样本数据和预期的输出。我没有看到如何查询给你错误的总和。 –