如何使用先前查询的结果执行第二次查询

时间:2013-08-28 14:07:58

标签: mysql

好的我需要计算公司的每个销售代理商的销售量,所以我这样做...

SELECT agentID, AgentName, COUNT(*) as total_sales FROM sales GROUP BY agentID

这完美地运作,但是它没有显示出售0的代理商。

所以我需要执行

SELECT agentID FROM agents

并对每个结果进行查询,因此我可以计算该代理商的销售量。我希望我解释一下。

(我可以在PHP中进行循环,但是我想知道是否可以在MySQL中直接进行)

此致

2 个答案:

答案 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