2016-09-16 4 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

Ваш SQL кажется хорошо для меня. Я бы посмотрел на записи в таблице «employee» вручную, чтобы увидеть, насколько они существуют, имеют правильный формат и т. Д. Если это не находит ошибку, отредактируйте вопрос с помощью некоторых примеров вашей базы данных. – TheHowlingHoaschd

+0

@ TheHowlingHoaschd yep Я проверил его вручную, и кажется, что тот, кто сделал таблицу, поставил 2 идентификатора для таблицы сотрудников, один из которых был индексом, а другой - для фактического идентификатора сотрудника. – Marc

ответ

0

попробовать, как этот раз

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; 
Смежные вопросы