Utilisez une requête SQL pour vérifier si une entrée contient une liste de valeurs et comparer
P粉270842688
2023-08-30 17:47:36
<p>J'ai deux tables MySql avec le schéma suivant</p>
<pre class="brush:php;toolbar:false;">Courses(CNO:CHAR(10),CName:VARCHAR(50), DeptId:CHAR(3)) : chaque cours a un identifiant unique appelé CNO
Registre (RNO:CHAR(10), CNO:CHAR(10), Année:INTEGER, Sem:INTEGER, Grade:CHAR)</pre>
<p>La tâche actuelle consiste à trouver tous les tuples qui satisfont (r1, r2, d), dans lesquels l'étudiant avec le numéro d'étudiant r1 a complété tous les DeptIds complétés par l'étudiant avec le numéro d'étudiant r2, et le DeptId est < Les cours du département strong>ID</ Strong>. </p>
<p>Ma méthode consiste à trouver d'abord tous les cours suivis dans le département par l'étudiant portant le numéro d'étudiant r2, puis à trouver de la même manière tous les cours suivis dans le département par l'étudiant portant le numéro r1, et à comparer s'ils sont les même. Mais je ne sais pas si c'est correct ni comment comparer les deux résultats. </p>
<p>C'est le code que j'utilise pour vérifier tous les cours suivis par l'élève portant le numéro de collège r2 dans un département spécifique : </p>
<p>Voici le lien vers la base de données de code et de données Fiddle</p>
C'est ma méthode
Étape 1 : Créez un tableau avec deux colonnes, student1 et student2, contenant des combinaisons uniques d'étudiants
Par exemple :
Étape 2 : Créez un tableau en ajoutant un DeptId unique pour chaque DeptId différent du tableau précédent
Par exemple :
Étape 3 : Finalement, seuls les tuples dans lesquels RNO1 et RNO2 ont suivi le même parcours dans chaque DeptId sont retenus.
Ce qui suit est un exemple où rno1_rno2_deptid fait référence au tableau ci-dessus
Ce qui précède sélectionne uniquement le cas où RNO1 et RNO2 ont le même CNO dans la même série.