sql - 结合 AND OR 和 NOT?
问题描述
我似乎一直在寻找解决方案:
我有这个 SQL 查询:
SELECT
c.CompanyName AS Kunde,
c.IsActiveClient AS "Aktiv i CV",
c.ssn AS CVR, cf.CustomFieldDefinitionFk,
cf.Value
FROM
Person AS c
INNER JOIN
CustomFields AS cf ON c.Id = cf.PersonFk
WHERE
cf.Value = 'Visma'
ORDER BY
Kunde;
这工作正常我得到这个输出:
但是在同一列(customFields->Value)中,我有一些我想从列表中排除的“kunde/Customers”。
他们在“价值”中同时拥有 Visma 和“1850 ...”(在 2 行中)
但是如果他们有“1850”行,即使他们有“Visma”值,他们也不应该在我的列表中。
我已经尝试了很多不喜欢和其他基础知识。没运气。
解决方案
使用不存在:
SELECT
c.CompanyName AS Kunde, c.IsActiveClient AS "Aktiv i CV", c.ssn AS CVR,
cf.CustomFieldDefinitionFk, cf.Value
FROM Person AS c INNER JOIN CustomFields AS cf
ON c.Id = cf.PersonFk
WHERE cf.Value = 'Visma'
AND NOT EXISTS (
SELECT 1 FROM CustomFields
WHERE PersonFk = cf.PersonFk AND Value LIKE '1850%'
)
ORDER BY Kunde;
推荐阅读
- wordpress - 每 10 分钟更新一次用户元数据
- makefile - 为生成的目标设置不同的变量值
- java - 在数组中查找 3 个连续重复的字符?
- php - 如何在 localhost(xampp) 上运行 laravel 和 reactjs 应用程序
- sql - 具有所有字段名称和名称不存在的空值的 UNION
- python-3.x - 使用 PyPDF2 从 PDF 文件中提取文本
- c# - C# 从 RegistryKey 获取 BaseKey
- python - For循环在Python中查找匹配值和总计
- reactjs - React Native 函数 bind() [函数绑定]
- https - 通过 Hololens 访问 IBM Watson API 时的 HTTPS 状态代码 0