为什么左外连接在这里没有产生正确的结果?

时间:2015-02-20 02:07:54

标签: asp.net vb.net

我有以下代码,由于某种原因,左外连接没有产生正确的结果。

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.我在这里做错了吗?

编辑 - 查询没问题。课程列表中存在的问题。它有重复/重复的项目。现在的问题是如何获得截然不同的结果?

1 个答案:

答案 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#中发布了答案。