从Select / Inner Join语句返回错误

时间:2009-03-04 14:34:02

标签: sql sql-server

当我尝试运行以下语句时,会返回错误消息: 服务器:消息208,级别16,状态1,行1 无效的对象名称'vendortofaultypeitemsmap'。

SQL帮助表示当“引用了不存在的对象”时出现此消息。如果我从vendortofaulttypeitemsmap *运行* select *,则此表确实存在并返回值。有人可以帮我查明导致错误消息的下面的语句有什么问题吗?提前谢谢。

select 
    vendortofaulttypeitemsmap.vendorid, 
    vendortofaulttypeitemsmap.faultypeitemguid,
    guid_faulttypeitems.faulttypeitemname,
    vendortoworkactionmap.workactionitemguid, 
    guid_workactionitem.workactionitemname
from vendortofaultypeitemsmap
    inner join guid_faulttypeitems on
    vendortofaulttypeitemsmap.faultypeitemguid=
        guid_faulttypeitems.faultypeitemguid
    inner join guid_workactionitem on
    vendortoworkactionmap.workactionitemguid=   
        guid_workactionitem.workactionitemguid
where vendortofaulttypeitemsmap.vendorid=45

3 个答案:

答案 0 :(得分:3)

你错过了't'vendortofaultTypeitemsmap。

答案 1 :(得分:2)

你有一个错字。它是vendortofaultypeitemsmap或vendortofaulttypeitemsmap。

答案 2 :(得分:2)

每次写出这些表名都可以轻松拼写错误。使用表别名来简化整个事情,并将其更改为:

select v.VendorID, v.FaultTypeItemGUID, f.FaultTypeItemName, 
       v.WorkActionItemGUID, w.WorkActionItemName 
from VendorToFaultTypeItemsMap v
inner join GUID_FaultTypeItems f on v.FaultTypeItemGUID = g.FaultTypeItemGUID 
inner join GUID_WorkActionItem w on v.WorkActionItemGUID = w.WorkActionItemGUID
where v.VendorID = 45

使用这样的长名称,使用混合大小写也可以帮助您更轻松地发现问题(假设您的数据库未设置为区分大小写)。