2012-04-30 15 views
1

2つのテーブルがあり、両方のテーブルからカウントを取得しようとしています。最初のテーブルから数え、2番目のテーブルから数えます。結果は次のようになります。複数のテーブルからの複数のカウント

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) 
関連する問題