【问题标题】:MySQL join multiple tables errorMySQL连接多个表错误
【发布时间】:2015-08-14 08:44:43
【问题描述】:

我很难在多个表上使用 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' 存在于我的数据库中。

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

【问题讨论】:

  • left join 后面的内容显示为表名。那么,login.employee 是表名吗?这意味着login 是一个数据库名称,employeelogin 中的一个表。 show create table absences 的输出是什么样的?也许你拼错了列名。

标签: php mysql sql join


【解决方案1】:

看起来您只是想连接两个表,因为您的查询中没有 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

【讨论】:

  • 谢谢,它成功了,我想我有一个逻辑错误。我猜也不需要加入类型。
【解决方案2】:

您必须选择所有表才能使用 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`;

您可以根据需要修改查询。

【讨论】:

  • @Jens.. 感谢您的编辑。我应该纠正那个。
【解决方案3】:

您可以处理下面的脚本。如有必要,在末尾添加 Where 子句。未测试...

SELECT * from absences a
inner join type t on (t.typeID = a.type_FK)
inner join employee e on (e.employee_ID = a.employee_FK)

【讨论】:

    【解决方案4】:

    这可能就是你要找的东西

    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`
    

    【讨论】:

      【解决方案5】:

      您必须对所有表使用连接:

      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` 
      

      【讨论】:

      • 再次获取“'on 子句'中的未知列'absences.type_FK'”。
      猜你喜欢
      • 1970-01-01
      • 2010-11-15
      • 2017-10-29
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      • 2012-12-29
      • 1970-01-01
      相关资源
      最近更新 更多