如何在 LINQ 中使用左外连接进行 SQL 查询?
Posted
技术标签:
【中文标题】如何在 LINQ 中使用左外连接进行 SQL 查询?【英文标题】:How to use left outer join in LINQ for SQL query? 【发布时间】:2015-08-03 19:00:49 【问题描述】:如何在 LINQ 中使用左外连接进行以下 SQL 查询?
SELECT a.EventID, a.PrizeId, b.PrizeName, b.PrizeValue, c.FightID, c.Winnerid, c.WinnerName
FROM tblUserprize a
JOIN tblPrizeDetails b
ON a.PrizeId=b.PrizeId
LEFT OUTER JOIN tblWinnersList c
ON a.EventID=c.EventID AND a.PrizeId=c.PrizeId AND c.FightID = 1534
WHERE a.EventID = 1320
【问题讨论】:
【参考方案1】:应该是这样的:
var userPrize = (
from a in tblUserprize
join b in tblPrizeDetails on a.PrizeId equals b.PrizeId
join c in tblWinnersList on new a.EventID, a.PrizeId equals new c.EventID, c.PrizeId into joinedTables
from item in joinedTables.DefaultIfEmpty()
where a.EventID == 1320 && item.FightID == 1534
select new
a.EventID,
a.PrizeId,
b.PrizeName,
b.PrizeValue,
item.FightID,
item.Winnerid,
item.WinnerName
);
【讨论】:
以上是关于如何在 LINQ 中使用左外连接进行 SQL 查询?的主要内容,如果未能解决你的问题,请参考以下文章
Linq to SQL 使用 Lambda 语法进行左外连接并在 2 列上连接(复合连接键)
LINQ 左外连接查询错误:OuterApply 没有适当的键