mysql - 来自 MySQL 中特定组的结果
问题描述
Suppose I have following information,
#PAN# #Product#
AAAAAAAAAA Product1
AAAAAAAAAA Product2
AAAAAAAAAA Product3
AAAAAAAAAA **Product4**
AAAAAAAAAA Product5
BBBBBBBBBB Product1
BBBBBBBBBB Product2
BBBBBBBBBB Product3
BBBBBBBBBB **Product4**
BBBBBBBBBB Product5
CCCCCCCCCC Product1
DDDDDDDDDD Product2
我只想要那些产品<>'Product4'(CCCCCCCCCC,DDDDDDDDDD)的PAN,但它给了我错误的结果,因为其他产品(Product1,Product2,Product3,Product5)中也有相同的PAN。所以不是给出结果(CCCCCCCCCC,DDDDDDDDDD),而是给出(AAAAAAAAAA,BBBBBBBBBB,CCCCCCCCCC,DDDDDDDDDD)
解决方案
左连接的另一种方法
select a.*
from table1 a
left join table1 b on a.PAN = b.PAN and b.Product = 'Product4'
where b.PAN is null
或者使用条件聚合
select a.PAN
from table1 a
group by PAN
having count(case when Product = 'Product4' then 1 else null end) = 0
推荐阅读
- android - SQLcipher:为 Google Play 发布 64 位版本的 App Bundle
- azure - 无法在 Azure 中使用服务连接建立 SS 连接
- python - 在 MySQL 8.0 中使用时间数据类型插入 12 小时格式
- mongodb - 如何避免 Spring Data MongoDB @CompoundIndexes 在嵌套字段上创建索引
- wordpress - 用户登录因密码不安全而被阻止进入我托管的 wordpress 网站
- c# - 如何检查一个类是否包含c#中另一个类的属性?
- python - 回归神经网络中的 NaN
- python-3.x - 使用有限制的 Python 验证 JWT 声明 - 真正的挑战
- python - 数组重新排列。都小于 a 左边的 a。a 的右边都大于 a
- ios - XCUITest - 无法合成事件:无法计算 Button 的命中点