使用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的情況。