好的我需要计算公司的每个销售代理商的销售量,所以我这样做...
SELECT agentID, AgentName, COUNT(*) as total_sales FROM sales GROUP BY agentID
这完美地运作,但是它没有显示出售0的代理商。
所以我需要执行
SELECT agentID FROM agents
并对每个结果进行查询,因此我可以计算该代理商的销售量。我希望我解释一下。
(我可以在PHP中进行循环,但是我想知道是否可以在MySQL中直接进行)
此致
答案 0 :(得分:6)
您可以使用一个查询执行所需操作:
select a.agentId, a.agentName, count(s.agentId) as total_sales
from agents a left outer join
sales s
on a.agentId = s.agentId
group by a.agentId, a.agentName;
left outer join
将所有内容保存在第一个表格中(agents
)。 count()
正在计算sales
表中的匹配数。
答案 1 :(得分:1)
您可以将这些结合起来:
SELECT agents.agentID, AgentName, COUNT(sales.id) as total_sales
FROM
agents
LEFT JOIN sales ON (sales.agentId = agents.agentId)
GROUP BY agentID