SQL найти оба значения из другой таблицы

Дано две таблицы:

position

введите сюда описание изображения

header

введите сюда описание изображения

Необходимо вывести id, из таблицы header, где в таблице position для него присутствует позиция 389577 и 389578 ( т.е. обе)

Если просто сджоинь через in, выведет все id

select h.number from header h

join position p on h.id=p.id

where p.position in ('389577','389578')

введите сюда описание изображения

А по моему условию, хотелось бы только 283, тк только он содержит обе позиции


Ответы (1 шт):

Автор решения: Akina
SELECT h.number 
FROM header h
JOIN position p USING (id)
WHERE p.position IN ('389577', '389578')
GROUP BY h.number 
HAVING COUNT(DISTINCT p.position) = 2
→ Ссылка