Извините, я не совсем уверен, как правильно сформулировать этот вопрос. Вот пример того, о чем я говорю:

#       food   type
1       muffin vegan
2       pasta  vegan     
3       cookie vegan     
4       burger vegan
5       bread  idk
6       boba   idk
7       muffin ok
8       pasta  ok
9       muffin no
10      pasta  yes
11      muffin hi

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

Тип еды

1       muffin vegan
2       pasta  vegan  
3       cookie vegan     
4       burger vegan   
7       muffin ok
8       pasta  ok

Как мне это сделать?

sql
0
Brandon Hu 5 Ноя 2018 в 22:51

1 ответ

Лучший ответ
select * from T where type in (
    select type from T
    where food in ('muffin', 'pasta')
    group by type
    having count(distinct food) = 2
);
0
shawnt00 5 Ноя 2018 в 20:02