#1242 - Subquery returns more than 1 row

Signaler
Messages postés
3
Date d'inscription
mercredi 14 juillet 2021
Statut
Membre
Dernière intervention
15 juillet 2021
-
Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021
-
en fait j'essaie de ressortir les notes séquentielle du premier trimestre et voici ma requête SQL

SELECT g1.student_id, c.course_name, (SELECT g2.marks
                      FROM grades g2 JOIN courses c1
                      ON c1.id = g2.course_id
       JOIN sequences s1
       ON s1.id = g2.sequence_id
                      WHERE s1.id = 1) AS sequences_1_marks,(SELECT g3.marks
                                                              FROM grades g3 JOIN courses c2
                                                              ON c2.id = g3.course_id
                                                              JOIN sequences s2
                                                              ON s2.id = g3.sequence_id
                                                              WHERE s2.id = 2) AS sequences_2_marks
FROM grades g1 JOIN courses c
ON c.id = g1.course_id
JOIN sequences s
ON s.id = g1.sequence_id
JOIN exams e
ON e.id = s.exam_id
WHERE e.id = 1


cela me retourne l'erreur #1242 - Subquery returns more than 1 row

comment pourrais je arrangé cela

merci d'avance pour votre aide

3 réponses

Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021
880
bonjour,
peux-tu décrire la structure de tes tables, et expliquer le résultat que tu attends, éventuellement avec des exemples?
Messages postés
3
Date d'inscription
mercredi 14 juillet 2021
Statut
Membre
Dernière intervention
15 juillet 2021

bonjour bien dormi ???

exams (id, name) represente les trimestres d'une école
sequences(id, name, exam_id) represente les sequences d'une école
courses (id, course_name) represente les cours d'une école
grades (id, marks, student_id, sequence_id, course_id) represente les différentes notes par élève en fonction de chaque cours

j'ai souhaite d'afficher les notes sequentielle des élèves en fonction des trimestres par matière
Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021
880
je ne peux que deviner ce que tu essaies de faire, j'ignore ce qu'est une note "séquentielle", tu ne donnes pas d'exemple, ni ne fait de lien avec tes tables.

partons d'une requête qui fonctionne et te rapproche du résultat:
fais une requête qui retourne:
student_id, course_name, sequence_id, marks
partages ici la source SQL de cette requête.

si je devine bien, tu veux ensuite "rassembler" sur une ligne les "marks" pour les sequence_id valant 1 et 2.
Messages postés
3
Date d'inscription
mercredi 14 juillet 2021
Statut
Membre
Dernière intervention
15 juillet 2021

SELECT g.student_id, c.course_name, g.sequence_id, s.name, g.marks
FROM grades g JOIN courses c
ON g.course_id = c.id
JOIN sequences s
ON g.sequence_id = s.id



voici la requette qui retourne ce que tu demande

Oui je veux rassember les marks sur deux ligne pour les sequence_id valant 1et 2
Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021
880
il faut alors ajouter une seconde fois la table grades dans la jointure.