SQL查询错误:无法绑定多部分标识符....

时间:2011-10-20 19:48:36

标签: sql sql-server

我确信这很明显,但我似乎无法弄清楚为什么我会收到错误。

“Ms 4104,Level 16,State 1,Line 1 无法绑定多部分标识符“dbo.ProductCode.ProductCode”。“

我基于每个表中的“Name”列加入了许多表,但在这种情况下,我需要将ProductCodeReference.ProductCode链接到ProductCode.ProductCode并根据ProductCode.Name拉出ProductCodeReference.ProductName

SELECT 
dbo.Servers.Name, 
dbo.ProductCodeReference.ProductName,
dbo.Enclosure.Model, 
dbo.OperatingSystem.FullOS, dbo.OperatingSystem.osbit,
dbo.OperatingSystem.ServicePack, dbo.OperatingSystem.Version,
dbo.Processor.Processors, dbo.Processor.CoreCount,
dbo.Memory.capacity,
dbo.MarcLevel.marcLevel
FROM dbo.Servers

INNER JOIN dbo.ProductCodeReference
ON dbo.ProductCode.ProductCode=dbo.ProductCodeReference.ProductCode

INNER JOIN dbo.Enclosure
ON dbo.Servers.Name=dbo.Enclosure.Name

INNER JOIN dbo.OperatingSystem
ON dbo.Servers.Name=dbo.OperatingSystem.Name

INNER JOIN dbo.Processor
ON dbo.Servers.Name=dbo.Processor.Name

INNER JOIN dbo.Memory
ON dbo.Servers.Name=dbo.Memory.name

INNER JOIN dbo.MarcLevel
ON dbo.Servers.Name=dbo.MarcLevel.name

ORDER BY dbo.Servers.Name

希望这是有道理的。谢谢!

2 个答案:

答案 0 :(得分:4)

问题在于下面显示的行,因为查询中没有名为ProductCode的表:

dbo.ProductCode.ProductCode

您似乎忘记在查询中包含ProductCode表。

FROM dbo.Servers  

INNER JOIN dbo.ProductCode
ON .... = ....  

INNER JOIN dbo.ProductCodeReference  
ON dbo.ProductCode.ProductCode=dbo.ProductCodeReference.ProductCode 

答案 1 :(得分:2)

除了这一行之外,查询中的任何地方都没有引用dbo.ProductCode表:

ON dbo.ProductCode.ProductCode=dbo.ProductCodeReference.ProductCode

该表需要由JOIN在某处指定。