2009-03-04 35 views
-1

當我嘗試運行以下語句時,將返回錯誤消息: 服務器:消息208,級別16,狀態1,行1 無效的對象名稱'vendortofaultypeitemsmap'。從Select/Inner Join語句返回的錯誤

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 

回答

1

您有一個錯字。它可以是vendortofaultypeitemsmap或vendortofaulttypeitemsmap。

+0

感謝您的幫助。我一定看過它20次,從來沒有看到過錯字。 – 2009-03-04 14:44:44

2

您錯過了't'vendortofaultTypeitemsmap。

1

每次寫出這些表名可以很容易造成拼寫錯誤。使用表別名來簡化整個事情,並將其更改爲:

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 

名稱很長的那樣,使用混合的情況下也可以幫助你更容易發現問題(假設你的數據庫沒有被設置爲區分大小寫) 。