我有以下代码,由于某种原因,左外连接没有产生正确的结果。
Dim StudentCourseList = From stud in students
Group Join cour in courses
on stud.id equals cour.id into joinedlist = Group
From j in joinedlist.defaultifempty
select stud
学生左外连接前的计数为12,课程为4.但是,在加入后,由于某种原因,学生人数为14。它应该是12,如果不低于12.我在这里做错了吗?
编辑 - 查询没问题。课程列表中存在的问题。它有重复/重复的项目。现在的问题是如何获得截然不同的结果?
答案 0 :(得分:0)
您尚未发布表格数据。所以这只是一个假设。
为什么计数是14?
如果一个学生有多个课程,例如有两个课程,那么会产生两个记录。
使用分组依据然后选择以下查询。
var query = from person in people
join pet in pets on person.Id equals pet.OwnerId into gj
from subpet in gj.DefaultIfEmpty()
group person by person.Id into temp1
select temp1.First();
here正在努力工作。对不起我不是一个vb家伙所以在c#中发布了答案。