Page 1 sur 1

Table temporaire ou pas?

Posté : 21 nov. 2007, 16:25
par Patriboom
Bonjour à tous!

J'ai besoin de votre avis pour faire la programmation la plus efficace possible au niveau du serveur.
Pour l'instant, je ne vois d'issue que dans la création d'une table temporaire, mais - à lire les commentaires - ce ne semble pas une voie que nous devons favoriser. Voici donc:

J'ai trois tables pour gérer des présences et participations à des activités:

La première est celle qui contient des inscriptions:
id_inscr INT
id_cours INT
id_perso INT

La seconde est celle des personnnes
id_perso INT
Nom VARCHAR
Prenom VARCHAR

La troisième est celle de la banque des activités
id_cours INT
Description VARCHAR
Dates DATE

Voici mon problème: je dois faire la liste des personnes inscrites qui ont participé à 3, 4 ou 5 cours.
Il s'agirait donc - en termes MySQL humains - de faire quelque chose comme

Code : Tout sélectionner

SELECT * FROM personnes AS PERS JOIN activites AS ACTI ON ACTI.id_perso=PERS.id_perso [... on ajouter ici des liens et des champs...] WHERE COUNT(ACTI.id_cours) = 3
Voilà pourquoi j'ai pensé à une table temporaire qui ressemblerait à :

Code : Tout sélectionner

MonNom = temporary table ... et un des champs serait Nombre_cours = COUNT(résultat)

Rien n'est du code utilisable en programmation ci-haut, mais j'ai mis entre *code pour simplifier la visualisation

Merci à l'avance de vos conseils

Posté : 21 nov. 2007, 16:42
par pascaltje
pourquoi pas une requête du style :

Code : Tout sélectionner

SELECT personne.* FROM [tables avec jointures] HAVING count(id_perso) >=3 AND count(id_perso) <= 5
A+

Pascal

Posté : 21 nov. 2007, 21:02
par Patriboom
Je mets "Résolu" tout de suite. Je reviendrai au besoin.
Je ne connaissais pas cette fonction.
Merci beaucoup.