首页 > 解决方案 > 返回具有共同特定列但包含相同列值的行

问题描述

对不起,我不太确定如何正确表达这个问题。这是我正在谈论的一个例子:

#       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

解决方案


select * from T where type in (
    select type from T
    where food in ('muffin', 'pasta')
    group by type
    having count(distinct food) = 2
);

推荐阅读