2010-11-25 14 views
0

私は、次のないクエリを記述する必要があります。SQLクエリは1つのクエリで実行できますか?

私は2つのテーブルがあります。

SalaryRanges: id, beginRange, endRange 
UserInfo: id, salary,... 

を、私は、次のないクエリを持っているしたいと思います:

は私のリストを与えます各給与範囲の特定の範囲を満たす5人以上の人がいる給与範囲のID。

だから、のようなもの:

SalaryRangeのid:1、4、5、7、人々がそれぞれの給与の範囲を満たす5+持っています。

これは1つのクエリで実行できますか?または、クエリを別の呼び出しに分割する必要がありますか?

答えて

5

これが私の頭の上からわずかですが、私はそれが

SELECT sr.id 
FROM SalaryRanges AS sr 
INNER JOIN UserInfo AS ui ON ui.Salary >= sr.beginRange AND ui.Salary <= sr.endRange 
GROUP BY sr.id 
HAVING count(ui.id) > 5 

[OK]をどちらが

+0

かかわらず動作するはずコメント

SELECT sr.id FROM SalaryRanges AS sr INNER JOIN UserInfo AS ui ON ui.Salary BETWEEN sr.beginRange AND sr.endRange GROUP BY sr.id HAVING count(ui.id) > 5 

ごとにBETWEEN使用して更新されたバージョンを働くだろうと思いますいいね。 > =、<=の代わりにBETWEENを使用します。 –

+0

十分に公正であれば、それはもっと読みやすい – Adam

関連する問題