繁体   English   中英

SQl中的右连接中的问题

[英]Problems in Right join in SQl

我有以下表结构,也有提及我的预期输出,请帮助我进行查询,因为我对sql查询不太了解

表结构

表1:Emp详细信息

    FName      Id  
    Pratik      1     
    Praveen     3     
    Nilesh      2     

表1:JoinigDocument

id    DocumentName
1     Leaving
2     Exp letter
3     birth cert

表2:EmployeeJoiningDocument

EmpId  JoiningDocumentId
1        1
1        2
3        1
3        2
3        3
2        1
2        3

预期产量:

FName      Id  JoiningDocumentId  DocumentName   
Pratik      1     1                  Leaving         
Pratik      1     2                  Exp letter      
Pratik      1     null               birth cert      
Praveen     3     1                  Leaving        
Praveen     3     2                  Exp letter      
Praveen     3     3                  birth cert    
Nilesh      2     1                  Leaving       
Nilesh      2     null               Exp letter      
Nilesh      2     3                  birth cert     

您可以将查询编写为:

select  
       A.FName,
       A.Id,
       B.JoiningDocumentId,
       c.DocumentName
from @JoinigDocument C
cross join @EmployeeDetail A
Left join @EmployeeJoiningDocument B on B.EmployeeId = A.id and 
B.JoiningDocumentId = C.id
order by A.Id

首先交叉JoinigDocumentEmployeeDetail表,以便获得雇员和文档的所有可能组合,而不论雇员是否拥有该加入文档。 然后,您需要进行左连接以保留所有这些匹配项,并在EmployeeJoiningDocument查找与有效条目对应的数据。

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM