C# 左外部联接,除了匹配的行之外,还返回Null Right Side
我正在尝试创建一个查询,该查询将返回两个表的左外部联接,但每个匹配都有一个额外的行。右侧的额外行为空。以下是一个例子: 以下是我当前使用linq进行的查询(也可以使用SQL进行响应): 编辑(解决方案?):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,
下面是实现您所需功能的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
)