我的表设置如下:
table name: process
fields: name, id_string
table name: value_seach
fields: id_string, value
我想构造一个select语句,该语句将显示在value_search中没有条目的所有进程名称(带有其各自的id_string)。
进程表中的id_string可以为null,并且仍然具有名称,但是如果可能的话,必须将其排除。 value_search中的id_string永远不能为null
我该怎么做呢?
最佳答案
通常,如果您想要其他表中不存在的行,则将LEFT JOIN另一个表,并将WHERE ... IS NULL插入第二个表中的列。您还提到过,您不希望process.id_string为NULL的行。
SELECT p.name, p.id_string
FROM
process p
LEFT JOIN value_search v
ON v.id_string = p.id_string
WHERE
v.id_string IS NULL
AND p.id_string IS NOT NULL
这称为反联接。
关于sql - 检查另一个表中是否不存在某项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9366021/