下午好!请让我在我的问题前面指出我对MySQL非常缺乏经验,但我被迫学习。也就是说,我有一个具有以下结构的表:
我面临的问题是列出的每个ID都不存在498和499的ExtraFieldID。我需要弄清楚如何找到缺少那些ExtraFieldID值但不返回其他结果的ID。我怎么能这样做?
到目前为止,我要么没有找到解决方案,要么还没有技能来识别解决方案。
无论哪种方式,对我来说仍然是一个问题。
我感谢任何人能够提供的任何帮助。
答案 0 :(得分:0)
这将找到所有不具有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
答案 1 :(得分:0)
既然您想要返回记录(或只是ID?),您可以使用WHERE
和NOT IN
子句的组合来检查498
和499
。您可以编写如下查询:
SELECT DISTINCT yourTable.id FROM yourTable WHERE ExtraFieldID NOT IN (498, 499);
我希望这会有所帮助。