2015-06-17 33 views
0

顯示專欄中,我想顯示驅動程序的第一個和最後一個名字,但是當我運行此查詢的名字列剛剛從職員表無法從不同的表

SELECT checklistitem.*, 
    m1.Company_ID AS Company_ID, 
    m1.ChecklistID As ChecklistID, 
    e.FirstName As FirstName, 
    e.LastName As LastName 
FROM checklistitem 
    LEFT JOIN employee e ON e.CompanyID 
    LEFT JOIN maintenance m1 ON m1.CheckListID 
    LEFT JOIN Vehicle v ON m1.LinkedID = v.ID 
    LEFT JOIN Trailer t ON m1.LinkedID = t.ID 
WHERE m1.Company_ID = 129 

迴歸測試,而不是實際的名稱我想也許該表是不正確的鏈接找到的名字,所以我試圖改變代碼LEFT JOIN employee e ON m1.Company_ID,因爲無論是維護和僱員表有一個公司ID,但我得到的錯誤

未知列「M1。 'on條款'中的'Company_ID'

+0

應該有一個連接條件,即「在a.a1 = b.b1」上,而不是「在a.a1上」 – KrazzyNefarious

回答

1

您的問題與LEFT JOIN聲明。 ON子句中的語法無效。

FROM checklistitem 
LEFT JOIN employee e ON e.CompanyID /*ERROR*/ 
LEFT JOIN maintenance m1 ON m1.CheckListID /*ERROR*/ 

你的SQL語句必須是table.column = table2.column

所以我要出去一個猜測,說你應該被使用

FROM checklistitem 
LEFT JOIN employee e ON checklistitem.CompanyID = e.CompanyID 
LEFT JOIN maintenance m1 ON e.CheckListID = m1.CheckListID 

請注意:我不知道是什麼你的桌子像安裝一樣。 checklistitem.CompanyIDe.CheckListID是一個猜測。請用您的表格中正確的字段替換它們。

另外用你的表名,m1.Company_ID會自動變成Company_ID。無需使用AS