使用交叉联接将 SQL 转换为 Linq
有人可以帮忙将以下 sql 转换为 c# 中的 linq 吗?
select s.SYSTEM_NAME,
r.RESET_CODE,
COUNT(v.reset_code)
from (select distinct system_name
from tbl) s
cross join (select distinct reset_code
from tbl) r
left join tbl v on v.SYSTEM_NAME = s.SYSTEM_NAME
and v.RESET_CODE=r.RESET_CODE
group by s.SYSTEM_NAME,r.RESET_CODE
Can someone please help in converting the following sql to linq in c#?
select s.SYSTEM_NAME,
r.RESET_CODE,
COUNT(v.reset_code)
from (select distinct system_name
from tbl) s
cross join (select distinct reset_code
from tbl) r
left join tbl v on v.SYSTEM_NAME = s.SYSTEM_NAME
and v.RESET_CODE=r.RESET_CODE
group by s.SYSTEM_NAME,r.RESET_CODE
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
交叉联接通常表示为查询表达式中的多个 from 子句,或扩展方法语法中对 SelectMany 的调用。
因此,您的查询的第一部分可能是:
左外连接通常用“join ... into ...”查询表示,可能是这样的:
老实说,我不确定 Count 部分......我不能 100% 确定
COUNT(v.ResetCode)
在原始 SQL 中的作用。Cross joins are generally represented as multiple from clauses in a query expression, or a call to SelectMany in extension method syntax.
So the first part of your query might be:
Left outer joins are usually represented with a "join ... into ..." query, possibly like this:
I'm not sure about the Count part, to be honest... I'm not 100% sure what the
COUNT(v.ResetCode)
does in your original SQL.