Вложенный SQL-запрос - PullRequest
       7

Вложенный SQL-запрос

1 голос
/ 25 ноября 2010

Я пытаюсь выучить SQL и пытаюсь написать SQL-запрос, который выполняет следующие действия:

У меня есть две таблицы:

SalaryRangeTable: id, beginRange, endRange
UserInfoTable: id, salary, ...

Я хочу сначала:

Выполните итерацию по SalaryRangeTable, выберите beginRange и endRange

Затем для каждой записи в этой таблице я хочу иметь возможность:

SELECT id FROM UserInfoTable WHERE salary > beginRange AND salary < endRange

Поэтому мой набор результатов будет включать всеИдентификаторы UserInfoTable, которые имеют этот диапазон.

Есть идеи?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 25 ноября 2010
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 голос
/ 25 ноября 2010

Вы должны иметь возможность присоединиться к таблицам и использовать distinct, чтобы избавиться от дубликатов из перекрывающихся диапазонов:

select distinct u.id
from SalaryRange s
inner join UserInfo u on u.salary > s.beginRange and u.salary < s.endRange
1 голос
/ 25 ноября 2010

Попробуйте это

Select id from userInfoTable u
Where Exists (Select * From salaryRangeTable
              Where u.Salary Between
                      BeginRange and endRange)

Если вам нужны эксклюзивные сравнения, используйте> и <</p>

Select id from userInfoTable u
Where Exists (Select * From salaryRangeTable
              Where u.Salary > BeginRange 
                And u.Salary < endRange)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...