对其他查询进行多次计数的结果

时间:2013-07-12 13:46:23

标签: mysql

我不确定我在这里尝试做的是可行的还是最好的方法,但我想避免多次查询来实现简单的结果集。

我的应用程序允许其帐户中的许多管理员和用户。我想返回一个基于其帐户类型的结果集,可以返回管理员和用户的数量(这是表中的固定值),但也返回已分配的管理员/用户数量。

这里最好的解释是一个例子(我知道它不起作用,但应该说明我正在尝试做什么:

 SELECT 
      `admins`,
      `users`,
      COUNT(SELECT id FROM `account_admins` WHERE `account_id`=?) AS `current_admins`, 
      COUNT(SELECT id FROM `account_users` WHERE `acount_id`=?) AS `current_users`
 FROM ....

我不确定上述是否可行,是否有效?我被告知我可以使用连接,但我不完全确定如何使用连接,尤其是多个COUNT()请求。

提前谢谢你:)

1 个答案:

答案 0 :(得分:0)

您的子查询方法几乎是正确的。您想将count()放在子查询中:

 SELECT 
      `admins`,
      `users`,
      (SELECT count(id) FROM `account_admins` WHERE `account_id`=?) AS `current_admins`, 
      (SELECT count(id) FROM `account_users` WHERE `acount_id`=?) AS `current_users`
 FROM ....