SQL NOT IN子句

rs.*_*rs. 3 .net sql t-sql sql-server-2005 notin

我有一个查询不能按预期工作

Q1:
SELECT id, name 
FROM vw_x 
WHERE id NOT IN (select pid from table_x)
GROUP BY id, name
Having max(c_date) > GETDATE()

Q2:
SELECT id, name 
FROM vw_x 
GROUP BY id, name
Having max(c_date) > GETDATE()
Run Code Online (Sandbox Code Playgroud)

Q1没有返回任何内容,即使我知道这些ID不在table_x中,Q2在没有NOT IN的情况下正确运行

我的查询可能有什么问题?

SQL*_*ace 19

表中有NULL值

试试这个

SELECT id, name 
FROM vw_x 
WHERE id NOT IN (select pid from table_x where pid is not null)
GROUP BY id, name
Having max(c_date) > GETDATE()
Run Code Online (Sandbox Code Playgroud)

或这个

SELECT id, name 
FROM vw_x 
WHERE  NOT EXISTS (select 1 from table_x  where pid = vw_x.id  )
GROUP BY id, name
Having max(c_date) > GETDATE()
Run Code Online (Sandbox Code Playgroud)

另请参阅从一个表中选择另一个表中不存在的所有行