Verwenden Sie eine SQL-Abfrage, um zu prüfen, ob ein Eintrag eine Werteliste enthält, und vergleichen Sie ihn
P粉270842688
P粉270842688 2023-08-30 17:47:36
0
1
532
<p>Ich habe zwei MySql-Tabellen mit dem folgenden Schema</p> <pre class="brush:php;toolbar:false;">Courses(CNO:CHAR(10),CName:VARCHAR(50), DeptId:CHAR(3)): Jeder Kurs hat eine eindeutige ID namens CNO Register(RNO:CHAR(10), CNO:CHAR(10), Jahr:INTEGER, Sem:INTEGER, Note:CHAR)</pre> <p>Die aktuelle Aufgabe besteht darin, alle Tupel zu finden, die (r1, r2, d) erfüllen, in denen der Student mit der Studentennummer r1 alle vom Studenten mit der Studentennummer r2 ausgefüllten DeptIds abgeschlossen hat und die DeptId <p> strong>ID</ Kurse der Strong>-Abteilung. </p> <p>Meine Methode besteht darin, zuerst alle Kurse zu finden, die der Student mit der Studentennummer r2 in der Abteilung abgeschlossen hat, und dann auf ähnliche Weise alle Kurse zu finden, die der Student mit der Studentennummer r1 in der Abteilung abgeschlossen hat, und zu vergleichen, ob sie es sind Dasselbe. Aber ich weiß nicht, ob das richtig ist und wie ich die beiden Ergebnisse vergleichen soll. </p> <p>Dies ist der Code, den ich verwende, um alle Kurse zu überprüfen, die der Schüler mit der Mittelschulnummer r2 in einer bestimmten Abteilung abgeschlossen hat: </p> <p>Hier ist der Link zum Code und den Daten DB Fiddle</p>
P粉270842688
P粉270842688

Antworte allen(1)
P粉799885311

这是我的方法

步骤1: 创建一个带有两列的表,student1和student2,其中包含学生的唯一组合

例如:

RNO1 RNO2
1    2
1    3
2    3

步骤2: 创建一个表,为上一个表的每个不同的DeptId添加一个唯一的DeptId

例如:

RNO1 RNO2 DeptId
1    2    IME
1    2    CHE
1    2    ECO
1    3    IME
1    3    CHE
2    3    ECO

步骤3: 最后,只保留RNO1和RNO2在每个DeptId中都选修了相同课程的元组。

以下是一个示例,其中rno1_rno2_deptid指的是上面的表

SELECT
   *
FROM
   rno1_rno2_deptid as d
WHERE
   NOT EXISTS((SELECT DISTINCT CNO FROM Register AS r WHERE r.RNO = d.RNO1 AND r.DeptId = d.DeptId) 
   MINUS 
   (SELECT DISTINCT CNO FROM Register AS r WHERE r.RNO = d.RNO2 AND r.DeptId = d.DeptId))

以上只选择RNO1和RNO2在同一系别中具有相同CNO的情况。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage