2015-10-31 2 views
0

У меня есть 3 таблицы, как видно на изображении ниже. Я был в состоянии присоединиться к projects.project_id к sprints.project_id и projects.manager_id к users.user_id однако, также хотят присоединиться к users.user_id к projects.product_owner_id я пыталсяSQL 2 Внутренние соединения в одном поле

INNER JOIN users ON projects.manager_id = users.user_id 
AND projects.product_owner_id = users.user_id 

Хотя это возвращается в настоящее время результаты. Я хочу, чтобы в моем представлении списка можно было указать идентификатор менеджера и идентификатор владельца продукта в элементе управления ListView.

enter image description here

Ниже мой текущий SQL-запрос, любая помощь будет оценена.

SELECT   
    projects.project_name, projects.manager_id, 
    projects.product_owner_id, projects.project_description, 
    projects.status, 
    sprints.sprint_name, sprints.sprint_start_date, 
    sprints.sprint_length, sprints.work_mon, 
    sprints.work_tue, sprints.work_wed, sprints.work_thu, 
    sprints.work_fri, sprints.work_sat, sprints.work_sun, 
    projects.project_id, sprints.project_id AS Expr1, 
    sprints.sprint_id, users.username 
FROM 
    projects 
INNER JOIN 
    users ON projects.manager_id = users.user_id 
INNER JOIN 
    sprints ON projects.project_id = sprints.project_id 
WHERE   
    (projects.project_id = @project_id) 

ответ

1

Заменить внутреннее соединение с левым внешнего соединения (так как есть продукты без владельца заполненного) и сделать отдельное объединение двух ассоциаций - менеджер и владелец:

... 
INNER JOIN users manager ON projects.manager_id = manager.user_id 
LEFT OUTER JOIN users owner ON projects.product_owner_id = owner.user_id 
... 
+0

Это здорово, спасибо. Я не уверен, что вы можете помочь с дальнейшим вопросом. Результаты по-прежнему выводят только одно имя пользователя, имя пользователя для 'manager_id'. Как я могу это сделать, так что у менеджера и владельца продукта есть отдельное имя пользователя? – mcclosa

+1

'select projects.project_name, owner.username as OwnerName, manager.username как имя менеджера, ...' вещь, как только таблица используется в соединении и имеет псевдоним, на его столбцы можно ссылаться в предложении select этим псевдоним. –

+0

Это сделало трюк, еще раз спасибо! – mcclosa

Смежные вопросы