#1242 - Subquery returns more than 1 row

Fermé
Nicklaus333 Messages postés 3 Date d'inscription mercredi 14 juillet 2021 Statut Membre Dernière intervention 15 juillet 2021 - Modifié le 14 juil. 2021 à 20:35
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 - 15 juil. 2021 à 18:33
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

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
14 juil. 2021 à 17:42
bonjour,
peux-tu décrire la structure de tes tables, et expliquer le résultat que tu attends, éventuellement avec des exemples?
0
Nicklaus333 Messages postés 3 Date d'inscription mercredi 14 juillet 2021 Statut Membre Dernière intervention 15 juillet 2021
15 juil. 2021 à 10:14
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
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
Modifié le 15 juil. 2021 à 16:35
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.
0
Nicklaus333 Messages postés 3 Date d'inscription mercredi 14 juillet 2021 Statut Membre Dernière intervention 15 juillet 2021
15 juil. 2021 à 18:15
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
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
15 juil. 2021 à 18:33
il faut alors ajouter une seconde fois la table grades dans la jointure.
0