我有两个表Student和Marks。
学生表具有以下字段:
StudentID, Name, MarkID(Nullable)。
标记表具有以下字段:
MarkID,Mark
学生桌
StudentID Name MarkID
1 Mark 1
2 Mike NULL
3 John NULL
4 Paul 2
Run Code Online (Sandbox Code Playgroud)
标记表
MarkID Mark
1 80
2 100
Run Code Online (Sandbox Code Playgroud)
如果我使用左连接,那么我只会得到mark和paul记录。我想要左表中的所有记录(Student)我的查询是:
var query = (from s in Students
join m in Marks on s.MarkID equals m.MarkID
into mar from subMark in mar.DefaultIfEmpty()
where(m.Mark > 80)
Select s.Name)
.ToList()
Run Code Online (Sandbox Code Playgroud)
注意:这只是一个例子。使用左连接连接两个表并在第二个表上应用 where 条件时,如果第一个表中连接的列值为空,则不会从第一个表中获取记录。