Мое левое соединение возвращает двойной ключ в строках - PullRequest
0 голосов
/ 18 марта 2020
this my query and    

 SELECT MAIL_STONE.MailStoneName,MAIN_TASK.MainTaskName
    FROM   PROJECTS
    left JOIN MAIL_STONE
    On PROJECTS.ProjectsId = MAIL_STONE.ProjectsId
    left Join MAIN_TASK
    On MAIL_STONE.MailStoneId = MAIN_TASK.MailStoneId
    where PROJECTS.ProjectsId = 1132

это результат

MailStone3                                                              task1                                                                 
MailStone3                                                              task2                                                                 
MailStone4                                                              NULL
MailStone1                                                              NULL
Specifications                                                          NULL

но мне нужен такой результат с левым соединением

MailStone3    task1 task2                                                                  
MailStone4     NULL  NULL                                                       
MailStone1     NULL   NULL   

у кого-нибудь есть идея?

Ответы [ 2 ]

2 голосов
/ 18 марта 2020

попробуйте использовать DISTINCT:

SELECT  DISTINCT 
MAIL_STONE.MailStoneId,MAIL_STONE.MailStoneName,MAIN_TASK.MainTaskName
FROM   PROJECTS
left JOIN MAIL_STONE
On PROJECTS.ProjectsId = MAIL_STONE.ProjectsId
left Join MAIN_TASK
On MAIL_STONE.MailStoneId = MAIN_TASK.MailStoneId
where PROJECTS.ProjectsId = 1132
0 голосов
/ 18 марта 2020

Попробуйте этот запрос ниже ( DBfiddle )

SELECT MAIL_STONE.MailStoneId ,
       MAIL_STONE.MailStoneName ,
       MAIN_TASK.MainTaskName
FROM PROJECTS
LEFT JOIN MAIL_STONE ON PROJECTS.ProjectsId = MAIL_STONE.ProjectsId
LEFT JOIN MAIN_TASK ON MAIL_STONE.MailStoneId = MAIN_TASK.MailStoneId
WHERE PROJECTS.ProjectsId = 1132
GROUP BY MAIL_STONE.MailStoneId ,
         MAIL_STONE.MailStoneName ,
         MAIN_TASK.MainTaskName
...