0

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

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

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

 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() 请求。

先感谢您 :)

4

1 回答 1

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 ....
于 2013-07-12T13:52:22.247 回答