MySQL连接多个表错误

时间:2015-08-14 08:44:43

标签: php mysql sql join

我很难在多个表上使用连接。当我尝试这样做时:

SELECT `absences`.*, `employee`.*, `type`.*
FROM `absences`, `type`
 LEFT JOIN `login`.`employee` ON `absences`.`employee_FK` = `employee`.`employee_ID` 

我明白了:

Unknown column 'absences.employee_FK' in 'on clause'

我的数据库中存在'absences.employee_FK'。

我想显示用户数据和缺席类型。我怎样才能做到这一点?我还不太了解加入。

enter image description here

4 个答案:

答案 0 :(得分:2)

看起来你只想尝试加入两个表,因为你的查询中没有type表的连接条件:

SELECT *
FROM absences
LEFT JOIN employee ON absences.employee_FK = employee.employee_ID

如果您想加入type表:

SELECT *
FROM absences
LEFT JOIN type ON absences.type_FK = type.type_ID
LEFT JOIN employee ON absences.employee_FK = employee.employee_ID

答案 1 :(得分:1)

您必须选择所有表以使用JOIN条件。

示例如下:

SELECT `employee.*`, `absences.*`, `type.*`

FROM `employee`

JOIN `absences`

ON `employee`.`employee_ID` = `absences`.`employee_FK`

JOIN `type` 

ON `absences`.`type_FK` = `type`.`type_ID`

JOIN `on_off`

ON `on_off`.`on_off_ID` = `employee`.`on_off_FK`;

您可以根据自己的要求修改查询。

答案 2 :(得分:0)

您必须对所有表使用join:

SELECT `absences`.*, `employee`.*, `type`.*
FROM `absences`
 JOIN `type` on `absences`.`type_fk` = `type`.`type_ID`
 LEFT JOIN `login`.`employee` ON `absences`.`employee_FK` = `employee`.`employee_ID` 

答案 3 :(得分:0)

这可能就是你要找的东西

select * from `absences` a
    left outer join `employee` e on e.`employee_ID` on a.`employee_FK`
    left outer join `type` t on t.`type_ID`=a.`type_FK`
    left outer join `on_off` o on o.`on_off_ID`=e.`on_off_FK`