2017-09-29 110 views
0

以下MySQL 5.7.19腳本會產生錯誤Error Code: 1054. Unknown column 'ps.employeeId' in 'on clause'on子句中存在未知列,即使該列存在

SELECT 
    `ps`.`employeeId` 
FROM 
    tablePS AS `ps`, 
    tableFO AS `fo` 
LEFT JOIN 
    tableWA AS `wa` 
ON 
    `wa`.`employeeId` = `ps`.`employeeId` 

腳本運行沒有一個錯誤是我除去第二表在FROM子句

, 
     tableFO AS `fo` 

或更換爲ON子句

`wa`.`employeeId` = `ps`.`employeeId` 

`wa`.`employeeId` = 4 

您可以使用這些合作伙伴創建表格mmand

CREATE TABLE tablePS (
    `id` INT UNSIGNED auto_increment, 
    `employeeId` INT UNSIGNED, 
    PRIMARY KEY `id` (`id`) 
); 

CREATE TABLE tableFO (
    `id` INT UNSIGNED auto_increment, 
    PRIMARY KEY `id` (`id`) 
); 

CREATE TABLE tableWA (
    `id` INT UNSIGNED auto_increment, 
    `employeeId` INT UNSIGNED, 
    PRIMARY KEY `id` (`id`) 
); 

怎麼了?

+0

錯誤:我們不能看到* *有問題的表格,對嗎?我們無法看到他們,因爲您沒有發佈表格創建語句。那麼,怎麼了?唯一可能的結論是該列不存在。就像MySQL告訴你的一樣。 – Mjh

+0

我正在嘗試查找簡化的CREATE TABLE語句。問題已更新。 – alik

+3

如果使用'tablePS'和'tableFO'的顯式連接而不是逗號分隔它們會發生什麼? – David

回答

1

嘗試

SELECT 
    `ps`.`employeeId` 
FROM 
    tablePS AS `ps` 
CROSS JOIN 
    tableFO AS `fo` 
LEFT JOIN 
    tableWA AS `wa` 
ON 
    `wa`.`employeeId` = `ps`.`employeeId`