Sql server 2008 SQL Server 2008子查询出现错误。在主查询中仍然有效

Sql server 2008 SQL Server 2008子查询出现错误。在主查询中仍然有效,sql-server-2008,subquery,Sql Server 2008,Subquery,好吧,也许我是sql的noob,但我不明白为什么这应该起作用: 我在表1中列出了如下内容: IDRecord (PK), Description, IDTable2 (FK) 下面是一张表2: IDRecord (PK), Description 表1.IDTable2为FK至表2.IDRecord 然后我有一个非常简单的查询: select * from Table1 where IDTable2 not in (select IDMispelledRecord from Table2)

好吧,也许我是sql的noob,但我不明白为什么这应该起作用:

我在表1中列出了如下内容:

IDRecord (PK), Description, IDTable2 (FK)
下面是一张表2:

IDRecord (PK), Description
表1.IDTable2为FK至表2.IDRecord

然后我有一个非常简单的查询:

select * from Table1
where IDTable2 not in (select IDMispelledRecord from Table2)
我犯了一个语法错误!表2中没有一个名为IDMispelledRecord的列,如果我单独执行子查询,它会返回给我

Invalid column name 'IDMispelledRecord'.
但是如果我执行整个查询,它不会引发错误,只返回0行


有人能告诉我为什么吗?

尽管你的问题没有显示这一点(请以后发布你的实际代码)
表1
必须有一个名为
IDMispelledRecord
的列


您的子查询正在引用外部查询中的该列。

哦,上帝,您说得对。上表中有一个字段的名称与我在子查询中错误使用的名称相同…@tanathos-