Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/04/2011, 03h49   #1
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Par défaut count dans table externe avec une seule requête

Bonsoir, je viens de terminé un script pour compter le nombre de personnes dans une table.
Mon architecture est composé de deux tables:
  1. La première contient les questions
  2. La seconde les personnes ayant répondu
Je suis obligé de faire en deux requêtes le fait de compter le nombre de personnes ayant répondu a une question.
Table contests
Code :
SELECT c.* FROM mc_plugins_contests AS c
Table contest_mails
Code :
1
2
3
SELECT count(m.idmail) AS tmail
		FROM mc_plugins_contests_mails AS m
		WHERE m.idcontest=1
Ne peut on pas faire exactement la même chose en une seule requête ?
J'avais tenté une jointure mais cela ne retourne qu'un seul enregistrement.
J'avais tenté :
Code :
1
2
3
4
SELECT c.idcontest,c.date_start,c.date_end,count(m.idmail) AS tmail 
		FROM mc_plugins_contests AS c
		LEFT JOIN mc_plugins_contests_mails AS m USING(idcontest)
		ORDER BY date_start DESC
Le résultat attendu :
Citation:
Question 1 contient 10 personnes
Question 2 contient 3 personnes
Sa limiterai les accès a la base de données
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2011, 10h39   #2
Membre éclairé
 
Avatar de ledisciple
 
Homme François
observateur de nuage niveau 2.3
Inscription : août 2008
Messages : 546
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 27
Localisation : France

Informations professionnelles :
Activité : observateur de nuage niveau 2.3

Informations forums :
Inscription : août 2008
Messages : 546
Points : 313
Points : 313
Je ne sais pas si ça répond à ta question mais avec ça :

table1 ( questions)

Citation:
idcontest|texte|date
1| la première question|2011-04-26
2|la deuxième question|2011-04-27
14|la 14ème|2011-04-26
20|20ème|2011-04-30
table 2 (personnes)

Citation:
idmail|idcontest
58|1
58|2
56|2
85|1
147|14
98|20
et cette requete

Code :
1
2
3
SELECT table1.idcontest AS question,count(idmail)AS "nombre de réponse"
FROM table1 INNER JOIN  table2 ON table1.idcontest = table2.idcontest
GROUP BY table1.idcontest
j'ai sorti ça :

Citation:
question: 1
nombre de réponse: 2
-
question: 2
nombre de réponse: 2
-
question: 14
nombre de réponse: 1
-
question: 20
nombre de réponse: 1
__________________
_____________________________________________
Tours Football Club - Turonorum Civitas Libera
ledisciple est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h46.


 
 
 
 
Partenaires

Hébergement Web