我正在尝试学习SQL并尝试编写执行以下操作的SQL查询:
我有两张桌子:
SalaryRangeTable: id, beginRange, endRange
UserInfoTable: id, salary, ...
我想先:
通过SalaryRangeTable迭代,选择beginRange和endRange
然后对于该表中的每个条目,我希望能够:
SELECT id FROM UserInfoTable WHERE salary > beginRange AND salary < endRange
因此,我的结果集将包含具有该范围的所有UserInfoTable id。
有什么想法吗?
感谢。
答案 0 :(得分:2)
select s.beginRange, s.endRange, u.id
from SalaryRange s
inner join UserInfo u on u.salary > s.beginRange AND u.salary < s.endRange
答案 1 :(得分:1)
试试这个
Select id from userInfoTable u
Where Exists (Select * From salaryRangeTable
Where u.Salary Between
BeginRange and endRange)
如果您需要独占比较,请使用&gt;和&lt;
Select id from userInfoTable u
Where Exists (Select * From salaryRangeTable
Where u.Salary > BeginRange
And u.Salary < endRange)
答案 2 :(得分:1)
您应该能够加入表格,并使用distinct
来摆脱重叠范围的重复:
select distinct u.id
from SalaryRange s
inner join UserInfo u on u.salary > s.beginRange and u.salary < s.endRange