C# SQl中的右连接问题
我有下面的表格结构,我也提到了我的预期输出 请帮我查询,因为我对sql查询不太了解 表结构 表1:Emp详细信息C# SQl中的右连接问题,c#,sql,sql-server,sql-server-2008,C#,Sql,Sql Server,Sql Server 2008,我有下面的表格结构,我也提到了我的预期输出 请帮我查询,因为我对sql查询不太了解 表结构 表1:Emp详细信息 FName Id Pratik 1 Praveen 3 Nilesh 2 id DocumentName 1 Leaving 2 Exp letter 3 birth cert 表1:JoinigDocument FName Id
FName Id
Pratik 1
Praveen 3
Nilesh 2
id DocumentName
1 Leaving
2 Exp letter
3 birth cert
表1:JoinigDocument
FName Id
Pratik 1
Praveen 3
Nilesh 2
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
中查找与有效条目对应的数据
请在表结构中包含表名。标志列后面的逻辑是什么?您是如何知道哪一行将有1和0的?@Deepshikha标志(用于表示的自定义列jsut)表示数据存在于Employee表或not@mxix添加表names@Nilesh你想从你的员工表中获取所有数据吗?你能解决这个问题吗?我花了将近一天的时间来解决这个问题