mysql - 从具有 value1 但不是 value2 的表中检索项目
问题描述
我有一张桌子t1
(下面是一个非常简化的真实桌子)
Name Subject Pass
A Math Yes
A English No
A Science No
B Math No
B English No
B Science No
我需要查询所有未通过任何主题的名称(通过=否)
`Select distinct(name) from t1 where Pass = 'No' and Pass <> 'Yes' 不起作用
解决方案
Select distinct(name) from t1 where Pass = 'No' and Pass <> 'Yes'
这不起作用,因为 WHERE 子句中的表达式一次计算一行,而不是整个组。您的Pass
列不能在任何给定行上同时具有“否”和“是”值,因此上面的查询将仅过滤 Pass =“否”的行,而不管是否有其他行具有“是”。
对于您的查询的解决方案,您可以这样写:
SELECT name
FROM t1
GROUP BY name
HAVING SUM(Pass = 'Yes') = 0
推荐阅读
- xamarin.forms - Xamarin Forms iOS Build Release 构建缺少 AppIcons
- python - 如何为共享评论元素的子列表的每个元素赋予相关子列表的唯一 ID?
- javascript - 如何从另一个 html 文件中预填充文本框的值?
- lua - wireshark 启发式解析器解码作为数据包的一部分
- spring-boot - 无法使用云 kafka 流将 autoCommitOffset 设置为 true
- github - 带有多个链接的 Github 降价图像
- html - 如何使元素居中
- user-interface - 如何旋转 wxButton 标签?
- wix - 使用 WiX 创建的 MSI 存在管理员权限问题
- python - 带有字符串解析的递归数学运算