sql - SQL查询选择结果依赖于两个值
问题描述
我有一个问题,我在我的数据库中运行一个不存在的查询
Description SUBMITTER
---------------------------
General worklog U1
Scope U1
Email-Out U2
General worklog U3
planning U3
我的查询是:
SELECT chg.CHANGE_ID,
chg.USER
FROM dbc as chg
WHERE chg.USER in ('U1')
and NOT EXISTS (SELECT logs.Description
from db as logs
WHERE
logs.CHANGE_ID = chg.CHANGE_ID
and
(
(logs.DESCRIPTION LIKE 'Email-O%'
and
logs.SUBMITTER in ('U1','U3'))
or
logs.DESCRIPTION like 'Scope'
))
我要做的是找到 U1 或 U3 没有“Email-O”或没有范围描述的实例。
通过我正在运行的查询,我得到的结果没有 Email-O,但如果 U1 或 U3 有另一个条目,它会丢弃结果。
实际上,我正在尝试将 Email-O 显式绑定到任意数量的用户,但由于某种原因,它没有按预期工作。
感谢帮助?
就我基于更新查询的输出而言
如果我选择logs.SUBMITTER in ('U1','U3')
我返回的值比我选择的少logs.SUBMITTER in ('U1')
。我相信这是因为 logs.SUBMITTER 值没有明确地与“Email-O”的 logs.DESCRIPTION 值相关联,所以当 U3 输入一个“planning”值时,这将删除一个结果。
解决方案
and NOT EXISTS ( SELECT 1
from db as logs
WHERE logs.CHANGE_ID = chg.CHANGE_ID
and ( ( logs.DESCRIPTION LIKE 'Email-O%' and
logs.SUBMITTER in (U1,U3)
)
or logs.DESCRIPTION like 'Scope'
)
)
这是您的罪魁祸首logs.CHANGE_ID
,但您没有将其包含在数据中,也没有包含chg
推荐阅读
- java - 偶尔有负载的类,有时它决定根本不工作
- flutter - 如何在 Flutter 中正确处理 json 数组?
- c++ - 与 Windows 窗体通信 C++ 头文件和源文件
- google-analytics - 如何使用 amp-analytics (UA) 跟踪 AMP 中的核心 Web Vitals
- java - 子和父的Java多捕获异常
- angular - 从下拉列表中选择一个选项后隐藏垫选择
- html - 表头不粘在顶部
- python-3.x - 如何使不和谐机器人从在线链接python发送图像
- r - 用先前观察到的值替换 NA 值
- variables - 如何删除 tcl 变量值中不需要的字符?