Вы можете использовать агрегацию и фильтровать с помощью предложения having
:
select order_no
from order_details
where goods in ('A', 'B', 'C')
group by order_no
having count(*) = 3
Если один и тот же goods
может появляться более одного раза для данного order_no
, тогда вам нужно having count(distinct goods) = 3
вместо having count(*) = 3
.