使用SQL查询检查条目是否包含值列表并进行比较
P粉270842688
2023-08-30 17:47:36
<p>我有两个具有以下模式的MySql表</p>
<pre class="brush:php;toolbar:false;">Courses(CNO:CHAR(10),CName:VARCHAR(50), DeptId:CHAR(3)):每门课程都有一个唯一的ID叫做CNO
Register(RNO:CHAR(10), CNO:CHAR(10), Year:INTEGER, Sem:INTEGER, Grade:CHAR)</pre>
<p>现在的任务是找到所有满足(r1,r2,d)的元组,其中学号为r1的学生完成了学号为r2的学生所完成的所有DeptId为<strong>ID</strong>的部门的课程。</p>
<p>我的方法是首先找到学号为r2的学生在该部门完成的所有课程,然后类似地找到学号为r1的学生在该部门完成的所有课程,并比较它们是否相同。但我不知道这样是否正确,也不知道如何比较这两个结果。</p>
<p>这是我用来检查特定部门中学号为r2的学生完成的所有课程的代码:</p>
<p>这是代码和数据DB Fiddle的链接</p>
这是我的方法
步骤1: 创建一个带有两列的表,student1和student2,其中包含学生的唯一组合
例如:
步骤2: 创建一个表,为上一个表的每个不同的DeptId添加一个唯一的DeptId
例如:
步骤3: 最后,只保留RNO1和RNO2在每个DeptId中都选修了相同课程的元组。
以下是一个示例,其中rno1_rno2_deptid指的是上面的表
以上只选择RNO1和RNO2在同一系别中具有相同CNO的情况。