2009-11-17 4 views
1

я хочу count(*) из двух разных таблиц и значение из третьей таблицыли Правильный способ выбрать COUNT (*) из двух разных таблиц

так:

таблицы A: select count(*) from TABLE_A where grp_id = 1

таблица B: select count(*) from TABLE_B where grp_id = 1

таблица С: select totalcount from TABLE_C where grp_id = 1 and AND UserID = 1

так, я обрамлением этого запрос:

select ifnull((select count(*) from TABLE_A where grp_id = 1),0) + ifnull((select count(*) from TABLE_B where grp_id = 1),0) 

Будет ли это эффективным способом?

+1

нет необходимости в ifnull, count always return> = 0 –

ответ

0

Рамеш,

Я думаю, что было бы эффективным, но почему бы вам не сделать это на стороне сервера? Я думаю, что было бы более гибким, чем писать этот SQL-запрос.

+0

он уже на стороне сервера –

+0

@Michael: Я имею в виду на C#, PHP, Java, что бы он ни использовал для создания веб-страницы, если есть какие-либо проблемы. – RageZ

+0

hmm .. ok. «... но почему бы вам не сделать это на стороне сервера?» предположил, что он делает это на стороне клиента (C#, php, java и т. д.). я вижу его последний запрос, он серверный, как он получает. –

1

Насколько мне известно, все в порядке.

Подзапросы не будут содержать заметных накладных расходов.

Смежные вопросы