2013-04-18 3 views

ответ

6

Вот один из способов:

select (select count(*) from table1) as t1_amount, 
     (select count(*) from table2) as t2_amount 

Вот еще один способ:

select t1.t1_amount, t2.t2_amount 
from (select count(*) as t1_amount from table1) t1 cross join 
    (select count(*) as t2_amount from table2) t2 

Ваш метод не работает, потому что , в пункте from делает cross join. Это делает декартовую продукцию между двумя таблицами.

+0

Благодаря Гордон, какой метод является более эффективным? – Bruce

+0

@ голубойbill1049. , , Они должны быть одинаковыми с точки зрения эффективности. Лично я предпочитаю второй подход, потому что я стараюсь избегать 'select' в' select' утверждениях. –

+0

Спасибо, Гордон, я последую вашим советам – Bruce

1

Поскольку они являются два отдельных запросов, и вы хотите их в том же наборе результатов, используйте UNION:

+0

Спасибо Joshua за ответ – Bruce

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