sql - SQL 查找具有特定缺失属性的“客户”
问题描述
有没有办法SQL
在 1 个表上使用语句,结果是没有一个特定属性的客户端?
该表存在多列。其中一个是Client
,另一个是Product
。一个人client
可以有几条不同的记录,它们的值不同product
。每个人都client
应该至少有一个特定product
的(例如X
),旁边是product
他可以拥有的许多不同的其他值。我想使用一个语句来返回所有clients
没有product X
.
解决方案
有几种方法:
使用
NOT EXISTS
如下:SELECT client FROM yourTable T WHERE NOT EXISTS (SELECT 1 FROM yourTable TIN WHERE TIN.product = 'product X' AND T.CLIENT = TIN.CLIENT );
使用
NOT IN
SELECT client FROM yourTable T WHERE client not in (SELECT tin.client FROM yourTable TIN WHERE TIN.product = 'product X' );
使用
group by
,如其他答案所示select client from yourTable group by client HAVING COUNT(CASE WHEN product = 'product X' THEN 1 END) = 0;
推荐阅读
- constructor - 学习 Python 中的构造函数
- playwright - 拒绝浏览器上的相机权限
- python - 如何模拟从熊猫中的示例函数返回的值?
- c++ - 关于unique_ptr所有权转移的问题
- reactjs - 导入多个 React 组件
- sql - 为什么在 sql server 中基于聚集索引的第二个键搜索并不能提高性能?
- python - 你如何为名为 makeWordLengthDict 的函数编写一个程序,该函数将单词列表作为其唯一参数,并在 python 中返回一个字典
- embedded-linux - 如何在 AST2500 上启用 USB 2.0 主机?
- java - 如何从 Uber Cadence 中的 Java 代码获取打开/关闭的工作流列表?
- c++ - 如何在 Windows-10 上的 Visual Studio Code 中设置和配置 MongoDB C/C++ (11/17) 驱动程序