mysql not in 问题

做自动化agent项目中遇到一个问题,旧项目设计的时候,大多字段都是可以为空的。
在进行in查询的时候生产出现了问题。
例如node_id,再特殊情况下,生产出现了空。
在用户查询未分配的设配时出现了null记录。
SELECT
*
FROM
edy.t_node_plugin np
WHERE
np.f_node_id NOT ( SELECT f_node_id FROM t_node_plugin t WHERE t.plugin_id = 224 )
结果为空,实际结果不该为空。

sql改写如下

SELECT
*
FROM
edy.t_node_plugin np
WHERE
np.f_node_id NOT (
SELECT f_node_id
FROM t_node_plugin t
WHERE t.plugin_id = 224
AND t.f_node_id IS NOT NULL )

你可能感兴趣的:(mysql)