我的表设置如下:
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
这称为反联接。