从 文档 :
为了符合该
SQL标准,不仅在左侧的表达式IN
为时返回,而且在列表中未找到匹配项并且列表中的表达式之一为时返回。NULL``NULL``NULL
这正是您的情况。
两者
IN和
NOT INreturn
NULL都不是
WHERe子句可接受的条件。
重写查询,如下所示:
SELECt *FROM match mWHERe NOT EXISTS ( SELECt 1 FROM email e WHERe e.id = m.id )

从 文档 :
为了符合该
SQL标准,不仅在左侧的表达式IN
为时返回,而且在列表中未找到匹配项并且列表中的表达式之一为时返回。NULL``NULL``NULL
这正是您的情况。
两者
IN和
NOT INreturn
NULL都不是
WHERe子句可接受的条件。
重写查询,如下所示:
SELECt *FROM match mWHERe NOT EXISTS ( SELECt 1 FROM email e WHERe e.id = m.id )