尝试构建选择查询。
这是我的表格,我们将第一列命名为“id”,第二列命名为“two”,第三列命名为“三”,最后一列命名为“date_time”
我有这张 table 。我想要获得等于 7 的所有行(在“三”列上),除非有一个条目等于 8(在“三”列上)。
例如,我想要 id 6 的行,但不是 id 8(因为另一行输入了 8)
我能够获取行,但是一旦存在另一个具有 8 的条目,它就根本不返回任何内容(使用不存在)
谢谢。
最佳答案
我们可以通过 EXISTS
查询来做到这一点:
SELECT id, two, three, date_time
FROM yourTable t1
WHERE three = 7 AND NOT EXISTS (SELECT 1 FROM yourTable t2 WHERE t2.three = t1.id);
Demo
这种方法可能会优于反连接。
关于mysql - SQL 从表中获取行,除非值存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53831183/