Utilisez une requête SQL pour vérifier si une entrée contient une liste de valeurs et comparer
P粉270842688
P粉270842688 2023-08-30 17:47:36
0
1
467

J'ai deux tables MySql avec le schéma suivant

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)

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.

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.

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 :

Voici le lien vers la base de données de code et de données Fiddle

P粉270842688
P粉270842688

répondre à tous (1)
P粉799885311

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 :

RNO1 RNO2 1 2 1 3 2 3

Étape 2 :Créez un tableau en ajoutant un DeptId unique pour chaque DeptId différent du tableau précédent

Par exemple :

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

É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

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))

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.

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!