2015-09-09 2 views
0

У меня немного сложность с получением информации о пользователях из одного места в другое.Проблема с левым соединением с справочной таблицей

Есть 3 таблицы dbo.gr_usersource и dbo.gr_task и dbo.gr_user

В dbo.gr_task таблицы столбец заполнен значениями, которые соответствуют записям в таблице dbo.gr_usersource, что имеет другое значение, соответствует значению в таблице dbo.gr_user. Вы можете назвать это справочной таблицей между dbo.gr_task и dbo.gr_user таблицами.

Мой запрос выглядит следующим образом;

select 
     dbo.gr_task.task_number 
    , dbo.gr_task.task_name 
    , dbo.gr_task.task_description 

from dbo.gr_task 

left join dbo.gr_user AS Handler 
    on dbo.gr_usersource.usersource_user = Handler.user_id 
    and dbo.gr_task.task_handler = dbo.gr.usersource.usersource.id 

Последним шагом было бы получить столбец user_name от пользователя таблицы, когда соединение будет работать.

ответ

0

Вы пропустили медиаторы таблицу в вашем присоединиться так использовать как на цен ниже

SELECT dbo.gr_task.task_number,dbo.gr_task.task_name, dbo.gr_task.task_description 
FROM dbo.gr_task AS gt 
LEFT JOIN dbo.gr_usersource gus ON gt.task_handler=gus.usersource.id 
LEFT JOIN dbo.gr_user AS gu ON gus.usersource_user=gu.user_id; 

Примечания: Если вы хотите только соответствующие строки во всех 3-х таблиц, то вы должны использовать нормальные присоединиться вместо левого присоединиться.

0

Это может сработать для вас. Обратите внимание, что в вашем списке выбора нет столбцов из ваших объединенных таблиц, поэтому левые соединения не повлияют на ваш набор результатов.

Внутренние соединения фильтруют ваши результаты, даже если вы не возвращаете столбцы, т. Е. Применяете условие соединения для соответствия строк в обеих таблицах.

SELECT 
     t.task_number 
    , t.task_name 
    , t.task_description 

FROM dbo.gr_task t 

INNER JOIN dbo.gr_usersource us 
    ON us.usersource.id = t.task_handler 

INNER JOIN dbo.gr_user u 
    ON u.user_id = us.usersource_user 
+0

Ницца это сработало спасибо! – ebrodje

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