2013-07-12 14 views
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 .... 

Я не уверен, что если выше возможно и если он эффективен? Мне сообщили, что я мог бы использовать присоединяется, но я не совсем уверен, как идти об этом esspecially с несколькими COUNT() запросы.

Спасибо заранее :)

ответ

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 .... 
Смежные вопросы