这可能很简单,但我一直在努力。基本上我需要结合两个不同的查询:
因此给出了以下表格结构:
我想回来:
Name Users Forms Active
====================================
Child 1 3 4 T
Child 2 4 3 F
所以问题是我想先根据Master id查询:
Select * from ACCOUNT where MasterId = 1026
AccntId Name Master Id Active
====================================
2 Child 1 1026 T
3 Child 2 1026 F
然后,对于每个返回的人,我想得到用户和表格的数量。
Select Count(AccntId) as Users from Form Where AccntId=2
当然,所有这些都在一个查询中。我已经弄乱了Joins和Left Joins以及初始查询中的绊脚石。
答案 0 :(得分:1)
好的,关心的人的最终查询结果是:
interstates = cities.values.flatten.uniq
最终给了我正在寻找的数字:
SELECT
A.Id as AccountId, A.Name, A.Active,
(select count(*) as Users FROM UserProfile UP where A.Id = UP.AccountId),
(select count(*) as Forms FROM Form F where A.Id = F.AccountId)
FROM
Account A
WHERE
A.MasterId = 1026
Group By A.Id, A.Name, A.Active
不确定这是否是最有效或最恰当的方法,但确实有效!感谢评论员的提示
答案 1 :(得分:0)
SELECT acc.MasterId, count(up.AccntId) as Users, count(f.AccntId) as Forms
from Account acc
full join UserProfile up
on up.AccntId = acc.AccntId
full join Form f
on f.AccntId = acc.AccntId
-- Where /* Your conditions */
group by acc.MasterId;
这应该有用。
编辑:加入已更改为左连接