Выбрать совпадения

sunyang

Новичок
Подскажите пожалуйста как выбрать вот такое условие.
Есть таблица:
id | prod_id | item_id

В нее могут быть записаны значения:

1 | 10 | 155
2 | 10 | 17
3 | 10 | 22
4 | 20 | 155
5 | 20 | 17
6 | 21 | 2

Мне нужно выбрать продукты у которых присутствуют два итема: 155 и 17 одновременно.

Т.е. только те записи, если есть и с 155 и с 17 итемом.
 

WMix

герр M:)ller
Партнер клуба
PHP:
select prod_id
from (
  select distinct prod_id, item_id
  from ...
  where item_id in(17,155)
) as tmp
group by  prod_id
having count(*) = 2
 

artoodetoo

великий и ужасный
или так
Код:
select e1.prod_id
from
  `ololo` as e1 inner join
  `ololo` as e2 on e1.prod_id = e2.prod_id
where
  e1.item_id = 17 and
  e2.item_id = 155
 

Gas

может по одной?
Код:
select prod_id from `table` where item_id = 17 or  item_id = 155 group by prod_id having count(*)=2
 
  • Like
Реакции: WMix

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Код:
select prod_id from foo where item_id = 155
intersect
select prod_id from foo where item_id = 17
 
Сверху