下午好!请让我在序言中指出我对MySQL非常不熟悉,但却被迫学习。这就是说,我有一个表结构如下:返回不存在值的结果
我所面临的问题是,ExtraFieldID对498和499不列出的每个ID存在。我需要弄清楚如何找到缺少这些ExtraFieldID值的ID,但不返回其他结果。我怎么能这样做呢?
到目前为止,我还没有找到解决方案,或者还没有识别解决方案的技能。无论哪种方式,这对我来说仍然是一个问题。
我很感激任何人都可以提供的帮助。
下午好!请让我在序言中指出我对MySQL非常不熟悉,但却被迫学习。这就是说,我有一个表结构如下:返回不存在值的结果
我所面临的问题是,ExtraFieldID对498和499不列出的每个ID存在。我需要弄清楚如何找到缺少这些ExtraFieldID值的ID,但不返回其他结果。我怎么能这样做呢?
到目前为止,我还没有找到解决方案,或者还没有识别解决方案的技能。无论哪种方式,这对我来说仍然是一个问题。
我很感激任何人都可以提供的帮助。
这将找到所有没有ExtraFieldId = 498
的ID。
SELECT DISTINCT id
FROM yourTable
WHERE id NOT IN (
SELECT id
FROM yourTable
WHERE ExtraFieldId = 498)
或者你可以使用自联接:
SELECT DISTINCT t1.id
FROM yourTable AS t1
LEFT JOIN yourTable AS t2 ON t1.id = t2.id AND t2.ExtraFieldId = 498
WHERE t2.id IS NULL
由于要返回的记录,你可以使用的WHERE
和NOT IN
条款相结合 - 检查(或者仅仅是标识?) 498
和499
。你可以写这样的查询:
SELECT DISTINCT yourTable.id FROM yourTable WHERE ExtraFieldID NOT IN (498, 499);
我希望这有助于。
你能澄清你的问题吗?对于列出的每个Id,您的意思是不存在的? – sgeddes
所以即时猜测你想要ID的谁没有'498和499' ExtraFieldID? – Shank
当然。这个特定的表格包含RMM工具其他表格引用的值。例如,ExtraFieldID 498引用数据库前端的复选框。 ID列可以指特定的客户端,客户端的特定位置或安装了监视代理程序的特定计算机。为了这篇文章的目的,ID列引用另一个表上的位置ID。如果复选框从未被更改过,ExtraFieldID列下的498值将不存在相应的ID。我需要找到缺少相应498值的ID值。 – jbrantley