右联入 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
您可以将查询编写为:
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
首先交叉联接JoinigDocument
并EmployeeDetail
表,以便获得员工和文档的所有可能组合,而不管员工是否拥有该加入文档。然后,您需要执行左连接以保留所有这些匹配项,并查找与EmployeeJoiningDocument
中的有效条目相对应的数据。
演示