SQL requete COUNT
Résolu
Bonjour,
J'ai une table avec des infos sur des parents, et une autre avec des infos sur les enfants. Dans la table enfant, j'ai un champs ID_parents qui correspond à l'ID du parents.
Un parent peut donc avoir plusieurs enfant.
Je souhaiterais compéter un champs "nb_enfants" dans la table des parents.
Je cherche donc à effectuer une requête du genre "count" sur la table enfant qui me reverrait le nombre d'enfants en fonction de l'ID du parents.
J'ai essayer ce genre de chose :
Mais ça ne me revois qu'un nombre : le nombre de solutions qui correspondent à ma conditon.
Je souhaiterais récupérer pour chaque parent le nombre d'enfant associés ?
Avez vous une idée ?
Merci d'avance
J'ai une table avec des infos sur des parents, et une autre avec des infos sur les enfants. Dans la table enfant, j'ai un champs ID_parents qui correspond à l'ID du parents.
Un parent peut donc avoir plusieurs enfant.
Je souhaiterais compéter un champs "nb_enfants" dans la table des parents.
Je cherche donc à effectuer une requête du genre "count" sur la table enfant qui me reverrait le nombre d'enfants en fonction de l'ID du parents.
J'ai essayer ce genre de chose :
$statementnbAyantDroitOne = "SELECT COUNT( DISTINCT ID_OD ) AS compteur FROM ouvrant_droit INNER JOIN ayant_droit WHERE (ouvrant_droit.ID = ayant_droit.ID_OD);";
$reqnbAyantDroitOne = mysql_query($statementnbAyantDroitOne) or die('<br>Erreur base de donnée !<br>' . $statementnbAyantDroitOne . '<br>'.mysql_error());
echo $statementnbAyantDroitOne . "<br>";
while($data = mysql_fetch_array($reqnbAyantDroitOne))
{
echo $data["compteur"] . "<br><br>";
}
Mais ça ne me revois qu'un nombre : le nombre de solutions qui correspondent à ma conditon.
Je souhaiterais récupérer pour chaque parent le nombre d'enfant associés ?
Avez vous une idée ?
Merci d'avance
3 réponses
-
Ok ça marche ! Merci beaucoup :)
-
Pour ceux que ça intéresses :
SELECT ouvrant_droit.nom_OD AS NAME, ouvrant_droit.prenom_OD AS FIRSTNAME, ouvrant_droit.date_naissance_OD AS BIRTH, count(ouvrant_droit.ID) AS COMPTEUR FROM ouvrant_droit INNER JOIN ayant_droit ON (ouvrant_droit.ID = ayant_droit.ID_OD) GROUP BY ouvrant_droit.ID;
-
Essaye de rajouter une clause GROUP BY ID_PARENT