从另一个表中查找元素的数量

时间:2016-12-07 19:17:05

标签: mysql sql

首先是架构 - 我有4个表:

office - officeid, officename
member - memberid, officeid, membername (multiple members per office)
transaction - transactionid, memberid, transactiontype (multiple transactions per member)
activity - activityid, officeid (multiple activities per office)

如何使用单个查询获取成员名单,办事处以及每个交易类型的数量和该办事处的活动总数?

我已经尝试过自己,我可以获取办公室名称,成员名称和活动计数但无法通过单个查询获取事务计数(每个事务类型)。想知道这是否可行。

任何建议/帮助表示赞赏。如果我能提供我错过的任何细节,请告诉我

编辑 - 我在http://sqlfiddle.com/#!9/9cf7b/1

添加了一个包含一些示例数据的sqlfiddle

还意识到我错过了会员桌中的officeid外键。

编辑 - 添加预期输出

officename, membername, transaction_count_1, trasaction_count_2, activitycount
abc       , aa        , 1                  , 1,                , 3
abc       , bb        , 1                  , 0,                , 1
abc       , cc        , 0                  , 1,                , 0

1 个答案:

答案 0 :(得分:0)

我认为这可以解决你的目的。

select b.membername,a.officename,count(transactiontype) 
from office a, 
member b, 
transaction c
where a.officeid = b.officeid
and b.memberid = c.memberid 
group by b.membername,a.officename

如果您需要任何进一步的数据操作,只需给出一个关于输出外观的想法(最好是截图或图像),我将相应地更改查询。

感谢。