我很难在多个表上使用连接。当我尝试这样做时:
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'。
我想显示用户数据和缺席类型。我怎样才能做到这一点?我还不太了解加入。
答案 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`