我正在尝试显示驱动程序的名字和姓氏,但是当我运行此查询时,名称列只返回test而不是employee表中的实际名称
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,但我收到错误
'on clause'
中的未知列'm1.Company_ID'
答案 0 :(得分: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.CompanyID
和e.CheckListID
是猜测。请用表中的正确字段替换那些。
同样使用您的表格名称,m1.Company_ID
会自动变为Company_ID
。无需使用AS
。