j ai une table ELEVE, une table RESPONSABLE et une table LIENER qui associe un élève à un responsable, un élève a forcément un responsable, un responsable peut ne pas avoir d'élève...
J'aimerais lister les nom, prénoms des élèves et des responsables, des responsables qui ont par exemples au moins 3 élèves...
J ai une requete qui marche mais elle est bien lente:
SELECT
....ELEVE.NOM, ELEVE.PRENOM, RESPONSABLE.NOM, RESPONSABLE.PRENOM
FROM
....ELEVE, RESPONSABLE, LIENER
WHERE
....COM_RESPONSABLES.IDRESPONSABLE=COM_LIENER.IDRESPONSABLE
....AND COM_LIENER.IDELEVE=COM_ELEVES.IDELEVE
....AND COM_RESPONSABLES.IDRESPONSABLE IN
....(SELECT
........COM_RESPONSABLES.IDRESPONSABLE
.....FROM
........ELEVE, RESPONSABLE, LIENER
.....WHERE
........COM_RESPONSABLES.IDRESPONSABLE=COM_LIENER.IDRESPONSABLE
........AND COM_LIENER.IDELEVE=COM_ELEVES.IDELEVE
........GROUP BY COM_RESPONSABLES.IDRESPONSABLE
........HAVING COUNT(COM_RESPONSABLES.IDRESPONSABLE)>=3)
Y aurait-il une méthode plus rapide?
Le problème (en tout cas le mien) c'est que si je compte les idresponsables tout de suite, je suis obligé de faire un group by idresponsable qui me perd les informations annexes (noms prenom etc...)
Partager