C# 左外部联接,除了匹配的行之外,还返回Null Right Side

C# 左外部联接,除了匹配的行之外,还返回Null Right Side,c#,mysql,sql,linq,lambda,C#,Mysql,Sql,Linq,Lambda,我正在尝试创建一个查询,该查询将返回两个表的左外部联接,但每个匹配都有一个额外的行。右侧的额外行为空。以下是一个例子: 以下是我当前使用linq进行的查询(也可以使用SQL进行响应): 编辑(解决方案?): 下面是实现您所需功能的SQL: (select c.id, c.code, sc.subCode from codes c join subcodes sc on c.id = sc.codeid ) union all (select c.id, c.code,

我正在尝试创建一个查询,该查询将返回两个表的左外部联接,但每个匹配都有一个额外的行。右侧的额外行为空。以下是一个例子:

以下是我当前使用linq进行的查询(也可以使用SQL进行响应):

编辑(解决方案?):


下面是实现您所需功能的SQL:

(select c.id, c.code, sc.subCode
 from codes c join
      subcodes sc
      on c.id = sc.codeid
) union all
(select c.id, c.code, NULL
 from codes c
)

你可以做一个内部联接加上一个并集,你只需在右边插入null。你应该使用
union all
而不是
union
,因为
union all
更有效(它没有重复消除步骤)。谢谢!我相信我刚拿到。更新了原来的帖子。
SELECT Codes.ID, Codes.Code, SubCodes.SubCode
FROM Codes
INNER JOIN SubCodes
ON Codes.ID = SubCodes.CodeID
UNION
SELECT Codes.ID, Codes.Code, NULL
FROM Codes
ORDER BY Codes.ID
(select c.id, c.code, sc.subCode
 from codes c join
      subcodes sc
      on c.id = sc.codeid
) union all
(select c.id, c.code, NULL
 from codes c
)