Я пытаюсь написать запрос SQL для достижения следующего (Фактическая схема в моей проблемы разные, но идея та же)Выбор любого из из соотношения
Скажем, у меня есть две таблицы
Employee
стол
------- ---- --- -------
empl_id name age dept_id
------- ---- --- -------
1 a 30 1
2 b 35 1
3 c 45 2
4 d 30 2
5 e 50 3
6 f 50 3
Department
стол
------- ----
dept_id name
------- ----
1 x
2 y
3 z
Что я хочу достичь в два раза
а) выбрать отделы, которые имеют по крайней мере, один сотрудник которого возраст составляет менее 40 (например).
б) вернуть EMP_ID из любого сотрудника , который принадлежит этому критерию в том же результате набор
Итак, выполнив запрос на приведенных выше таблицах должны возвращать
dept_id emp_id
------- ------
1 1 <-- I don't care if emp_id returned is 1 or 2. Both satisfy the filter
2 4
Я знаю, что могу достичь цель a) с этим запросом
select
dept_id
from
Department d
where
exists (
select
1
from
Employee e
where
e.age < 40
and e.dept_id = d.dept_id
)
Но я не могу придумать способ достижения б). Может кто-то пролил свет?
Благодаря
Кстати, то, что СУРБД вы используете? – neutrino
@neutrino IBM Informix – ubi