【发布时间】:2021-03-14 09:29:27
【问题描述】:
我正在尝试在 SQL Server 数据库中的多对多连接中查找潜在的重复项。 我有一个学生上课的数据库,并有以下表格:课程、参加者、教室和学生。 我正在尝试查找同一组学生可能已在同一日期和教室两次输入的重复项。 学生到课程是由参加者表分解的多对多。 LessonID、StudentID、ClassroomID 字段是 SQL Server 标识主键。参加者只是一个带有学生和课程复合键的连接表。
课程: 课程编号 上课日期 教室编号
学生: 学生证
参加者: 课程编号 学生证
教室: 教室编号
同一组学生可能在同一天在同一个教室参加不同的课程是合理的,但我想将他们标记为潜在的重复,以防记录被错误地输入了两次。 我不知道如何在同一日期为同一教室找到匹配的学生组。
因此,我希望找到的重复数据示例如下:
课程:
+------------+-------------+------------+ |课程ID |教室ID |上课日期 | +------------+-------------+------------+ | 335867 | 347 | 2020 年 6 月 1 日 | | 335872 | 347 | 2020 年 6 月 1 日 | +------------+-------------+------------+参加者:
+----------+----------+ |课程ID |个人ID | +----------+----------+ | 335867 |第432章 | 335867 |第1398章 | 335867 | 5107 | | 335872 |第432章 | 335872 |第1398章 | 335872 | 5107 | +----------+----------+另一种看待这个问题的方式是:对于任何给定的课程,哪些其他课程(如果有)在同一天在同一教室有相同的学生。
【问题讨论】:
-
样本数据、预期结果和您的尝试将帮助我们帮助您。这闻起来像家庭作业(我不是说它是,但它有它的感觉),所以如果是的话,我们为你做你的工作不会帮助你。你做了哪些研究来尝试完成这项任务?
-
你好拉努。因为新冠肺炎,我在家工作,所以我想你可以说这是我的作业,但我真的很感谢你的帮助。我将发布示例数据...
-
@PhilHawkridge 您可以使用dbfiddle.uk 创建minimal reproducible example
标签: sql-server duplicates many-to-many