簡體   English   中英

MySQL聯接多表錯誤

[英]MySQL join multiple tables error

我努力在多個表上使用聯接。 當我嘗試這樣做時:

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”。

我想顯示用戶數據和缺席的類型。 我怎樣才能做到這一點? 我還不了解加入的技巧。

在此處輸入圖片說明

看起來您只是試圖連接兩個表,因為您的查詢中沒有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

您必須選擇所有表以使用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`;

您可以根據需要修改查詢。

您必須對所有表使用聯接:

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` 

您可以使用以下腳本。 如有必要,在末尾添加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)

這可能是您要尋找的

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`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM