右联入 SQl 中的问题

本文关键字:问题 SQl | 更新日期: 2023-09-27 18:30:34

我有以下表格结构,我也提到了我的预期输出请帮我查询,因为我对SQL查询了解不多

表结构

表1:电磁脉冲详细信息

    FName      Id  
    Pratik      1     
    Praveen     3     
    Nilesh      2     

表1:加入文档

id    DocumentName
1     Leaving
2     Exp letter
3     birth cert

表 2:员工加入文档

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     

右联入 SQl 中的问题

您可以将查询编写为:

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中的有效条目相对应的数据。

演示