2012-04-30 2 views
1

У меня есть две таблицы, и я пытаюсь получить счет из обеих таблиц. Средство подсчитывает из первой таблицы, затем подсчитывается со второй таблицы, и результат должен выглядеть следующим образом.Несколько граф из нескольких таблиц

Count(users.name) Count(users_types) 
     5     8 

Но мой запрос приносит этот результат

Count(users.name) Count(users_types) 
     8     8 

Вот мой запрос

select count(users.users), 
count(users_types.users_types) 
form users , users_types 

Как я могу получить правильный результат?

ответ

0

Используйте подселектор запрос, как этот

select 
    count(users.users) Users, 
    (select 
    count(users_types.users_types) 
    from teams) UsersTypes 
from users 
1

попробовать:


select 
(select count(users.users) from users), 
(select count(users_types.users_types) form users_types) 
+0

Это прекрасно работает, но замедляет запрос значительно, когда таблица содержит большое количество данных. Первоначальный вопрос, похоже, хочет сделать это без проблемы скорости. – Nightwolf

+0

ну, ничто как таковое не упоминается в вопросе ..! –

+0

Ничего плохого в вашем ответе, но почему бы не добавить альтернативный ответ, который позволяет быстрее получать результаты. – Nightwolf

1
select (select count(*) cnt1 from table1), 
(select count(*) cnt2 from table2) 
Смежные вопросы