2016-09-16 9 views
0

プロジェクトのタスクに割り当てられたステージ、バッチ、タスク、従業員を取得しようとしていますが、ほとんど完了していますが、employeeを含めると結果が空になる理由はわかりません表。

これが私の元の文です:複数のJOINステートメント

SELECT project.JONumber, stage.StageName, batch.BatchName, tasks.task_name, tasks_assignment.employee_number 
    FROM project 
    JOIN stage ON project.id = stage.project_id 
    JOIN batch ON stage.ID = batch.stage_id 
    JOIN tasks ON batch.id = tasks.batch_id 
    JOIN tasks_assignment ON tasks.id = tasks_assignment.task_id 
    WHERE project.id = 23441; 

しかし、私は別のJOINステートメントを追加しようとすると、結果は空を返し、ここで
が更新文です:

SELECT project.JONumber, stage.StageName, batch.BatchName, tasks.task_name, tasks_assignment.employee_number, employee.FirstName 
FROM project 
JOIN stage ON project.id = stage.project_id 
JOIN batch ON stage.ID = batch.stage_id 
JOIN tasks ON batch.id = tasks.batch_id 
JOIN tasks_assignment ON tasks.id = tasks_assignment.task_id 
JOIN employee ON employee.ID=tasks_assignment.employee_number 
WHERE project.id = 23441; 


私は」私は最後のJOINステートメントを乱したかもしれないと思っていますが、JOINはJOIN table2 ON table1.Primarykey=table2.foreignkeyのようにすべきではありません。しかし、多分私は間違っている、誰でも私の間違いを指摘することができますか?私は本当に混乱し

+2

次のようにしてみてくださいね。私は 'employee'テーブルの関連するエントリを手作業で調べ、それらが存在しているかどうか、正しいフォーマットを持っているかどうか調べます。もしエラーが見つからなければ、あなたのデータベースのいくつかの例を使って質問を編集してください。 – TheHowlingHoaschd

+0

@ TheHowlingHoaschdうん、私は手動でそれをチェックし、テーブルを作った人が従業員テーブル用に2つのIDを入れているように見えます.1つはインデックスで、もう1つは実際の従業員IDです。 – Marc

答えて

0

はあなたのSQLは、私には罰金だ一度

SELECT project.JONumber, stage.StageName, batch.BatchName, tasks.task_name, tasks_assignment.employee_number, employee.FirstName 
FROM project 
JOIN stage ON project.id = stage.project_id 
JOIN batch ON stage.ID = batch.stage_id 
JOIN tasks ON batch.id = tasks.batch_id 
JOIN tasks_assignment ON tasks.id = tasks_assignment.task_id 
RIGHT OUTER JOIN employee ON employee.ID=tasks_assignment.employee_number 
WHERE project.id = 23441; 
関連する問題