[英]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
首先交叉JoinigDocument
和EmployeeDetail
表,以便获得雇员和文档的所有可能组合,而不论雇员是否拥有该加入文档。 然后,您需要进行左连接以保留所有这些匹配项,并在EmployeeJoiningDocument
查找与有效条目对应的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.