2017-09-29 12 views
0

次のMySQL 5.7.19スクリプトでは、エラーError Code: 1054. Unknown column 'ps.employeeId' in 'on clause'が発生します。列が存在していてもオン句の未知の列

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

スクリプトがエラーなしで実行私はFROM句

, 
     tableFO AS `fo` 

又は

`wa`.`employeeId` = 4 

でON句を

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

を置き換える第二のテーブルを削除でありますあなたはこれらの共同でテーブルを作成することができます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` 
関連する問題