Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQl中的右连接问题_C#_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

C# SQl中的右连接问题

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

我有下面的表格结构,我也提到了我的预期输出 请帮我查询,因为我对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  
    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你想从你的员工表中获取所有数据吗?你能解决这个问题吗?我花了将近一天的时间来解决这个问题