sql - 返回具有共同特定列但包含相同列值的行
问题描述
对不起,我不太确定如何正确表达这个问题。这是我正在谈论的一个例子:
# 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
我该怎么做呢?
解决方案
select * from T where type in (
select type from T
where food in ('muffin', 'pasta')
group by type
having count(distinct food) = 2
);
推荐阅读
- python - 在 python 中为不同的步骤名称显示不明确的步骤异常
- python - 包装脚本,将记录另一个带参数的脚本的执行时间
- intellij-idea - 在空手道/IntelliJ 中等待并行功能完成
- java - 从任何地方使用 Java Runtime 执行 cl 命令
- php - 有条件地在 WooCommerce 上应用生成的优惠券添加到购物车
- c++ - C++中unique_lock和shared_lock有什么区别
- c++ - 关于未解析的外部符号的 pbrt 问题
- google-docs - 在谷歌文档中获取准确的字符索引,而不管呈现的页面数量
- php - 这种奇怪的浮点格式是如何出现的,无论是点还是逗号?
- apache-flink - 我应该如何将 Apache-flink 流数据下沉到 Druid 中?