Requête pour compter sur 3 tables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requête pour compter sur 3 tables

Re: Requête pour compter sur 3 tables

par Yosh » 18 oct. 2011, 13:09

Je ne suis pas très callé en mysql mais je pense que le count ne fonctionnera pas dans ce cas ci avec un GROUP BY. Il faudrait confirmation d'un pro :)

La solution que je vois serai de trier le résultat de ta requête via ton script php en incrémentant une variable selon la valeur de ton num_participant.

A confirmer donc.
Et bien justement, en utilisant le COUNT ET GROUP BY, tu devrais arriver au bon résultat.

Re: Requête pour compter sur 3 tables

par Zahnzao » 18 oct. 2011, 12:56

Je ne suis pas très callé en mysql mais je pense que le count ne fonctionnera pas dans ce cas ci avec un GROUP BY. Il faudrait confirmation d'un pro :)

La solution que je vois serai de trier le résultat de ta requête via ton script php en incrémentant une variable selon la valeur de ton num_participant.

A confirmer donc.

Re: Requête pour compter sur 3 tables

par nicodespiennes » 18 oct. 2011, 11:57

Merci +++ pour votre réponse,

Voici votre requête adaptée à mes tables :
SELECT participants.num_participant, participants.nom, participants.prenom
FROM participants
INNER JOIN inscriptions ON inscriptions.num_participant = participants.num_participant
INNER JOIN activites ON activites.num_activite = inscriptions.num_activite
ORDER BY participants.nom
LIMIT 0 , 30
Voici le résulat :
Image

On se rapproche de l'objectif, reste à compter pour chaque participants en partant de celui qui a le plus d'inscriptions:

Addoun : 6
Aarab : 5
Abboudi : 1
Abras : 1

Je pense à COUNT et GROUP BY mais je nage un peu, je vais des tests.

Avez-vous une piste de solutions ?

Merci +++

Nicolas

Re: Requête pour compter sur 3 tables

par Zahnzao » 18 oct. 2011, 11:32

Salut, il faut utiliser les jointures.

dans ce genre:
SELECT part.num_part,part.nom,part.prenom FROM part
   INNER JOIN insc ON insc.num_part = part.num_part
   INNER JOIN act ON act.num_act = insc.num_act
WHERE insc.presence = ?? AND act.type = ??
C'est quelque chose dans ce genre.

J'ai simplifier le nom de tes tables donc remplace par les tiens, ainsi que les ?? en fonction de ta recherche.

Requête pour compter sur 3 tables

par nicodespiennes » 18 oct. 2011, 10:33

Bonjour,
Je dois réaliser une requête sur ces 3 tables :

participants(num_participant,nom, prenom, ...)
inscriptions(num_inscription, num_participant, num_activite, presence,...)
activites(num_activite, designation, type, date,...)

on me demande de réaliser un hit-parade des participants présents (inscriptions.presence) et leurs inscriptions par type d'activité.

activites.type peut avoir 3 valeurs : Atelier, séminaire ou colloque

exemple:

Pierre Untel 26 inscriptions
Gérard Menfroid 25 inscriptions
Emile Pattes 18 inscriptions

et ainsi de suite.

Avez-vous une idée de début de requête ?

Je vous remercie +++

NP