即使一切都是唯一的,也无法绑定多部分标识符

The multi-part identifier could not be bound even though everything is unique

所以我遇到了 IntelliSense 错误,我不知道为什么。我已将所有内容重命名为使用别名,并且我已经准备好所有关于多部分标识符的内容,这似乎表明它不是唯一的?但是使用别名它似乎是独一无二的,尽管 "MachineID" 在许多表中被引用

这是我的查询

SELECT DISTINCT TOP 1000 
a.Name00,
a.UserName00,
a.Domain00,
a.TotalPhysicalMemory00,
a.Manufacturer00,
a.Model00,
a.MachineID,
a.SystemType00,
b.MACAddress00,
b.ServiceName00,
c.System_OU_Name0,
d.Name0,
e.Model00

FROM 
[dbo].[Computer_System_DATA] AS a,
[dbo].[v_RA_System_SystemOUName] AS c,
[dbo].[v_GS_PROCESSOR] AS d,
[dbo].[Disk_DATA] AS e

INNER JOIN  [dbo].[Network_DATA] AS b ON  b.MachineID=a.MachineID
WHERE 
b.MACAddress00 IS NOT NULL AND b.ServiceName00 LIKE '%express'

错误显示在第 22 行 a.MachineID

我错过了什么?另外,如果我注释掉以下内容,错误就会消失;

--c.System_OU_Name0,
--d.Name0,
--e.Model00


--[dbo].[v_RA_System_SystemOUName] AS c,
--[dbo].[v_GS_PROCESSOR] AS d,
--[dbo].[Disk_DATA] AS e

非常感谢任何帮助!

Dmitrij Kultasev 恰好解决了这个问题。显式连接首先发生。所以目前,INNER JOIN 在 eb 之间; acd 不在该 ON 子句的范围内 - 因此出现错误(没有 a)以及为什么它在评论时起作用更改加入顺序(现在意味着您要加入 ab.

修复您的查询以消除旧的逗号连接语法 - 它来自四分之一个多世纪前!

SELECT DISTINCT TOP 1000 
a.Name00,
a.UserName00,
a.Domain00,
a.TotalPhysicalMemory00,
a.Manufacturer00,
a.Model00,
a.MachineID,
a.SystemType00,
b.MACAddress00,
b.ServiceName00,
c.System_OU_Name0,
d.Name0,
e.Model00

FROM 
[dbo].[Computer_System_DATA] AS a
    INNER JOIN --?--
[dbo].[v_RA_System_SystemOUName] AS c
    ON
       --?-- What links a and c together?
    INNER JOIN  --?--
[dbo].[v_GS_PROCESSOR] AS d
    ON
       --?-- What links d to the combination of a and c?
    INNER JOIN --?--
[dbo].[Disk_DATA] AS e
    ON
       --?-- What links e to the combination of a, c and d?

INNER JOIN  [dbo].[Network_DATA] AS b ON  b.MachineID=a.MachineID
WHERE 
b.MACAddress00 IS NOT NULL AND b.ServiceName00 LIKE '%express'

当然,您可能想要切换执行连接的顺序,例如ac 之间的 link 实际上是通过 d.


The multi-part identifier could not be bound even though everything is unique

问题标题真的没有意义。显示 "The multi-part identifier could not be bound" 的错误通常意味着您在某处使用的名称的一部分在该位置 根本不可用 - 与多重定义无关。这通常会产生类似 "The correlation name '<x>' is specified multiple times".

的错误