无法显示来自不同表的列

时间:2015-06-17 15:29:45

标签: mysql

我正在尝试显示驱动程序的名字和姓氏,但是当我运行此查询时,名称列只返回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'

1 个答案:

答案 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.CompanyIDe.CheckListID是猜测。请用表中的正确字段替换那些。

同样使用您的表格名称,m1.Company_ID会自动变为Company_ID。无需使用AS