Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
758 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Count et jointure

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Count et jointure

n°1535592
cerafin_la​mpion
Posté le 29-03-2007 à 09:46:33  profilanswer
 

Bonjour a tous,
 
Je souhaite faire un count dans un requête comportant une jointure.
 
La requête qui fonctionne :
 
$select = "SELECT log.date,nbr_msg,groupnom FROM log,Group_info WHERE  log.nbr_msg=1011 AND Group_info.groupnom='$groupe' AND log.date BETWEEN $date AND $date1 ORDER BY date";
 
Je voudrait juste essayer de faire un count d'un des éléments de la table log alors j'ai essayé ca :
 
$select = "SELECT log.date,nbr_msg,groupnom,COUNT(log.date) AS nbr FROM log,Group_info WHERE  log.nbr_msg=1011 AND Group_info.groupnom='$groupe' AND log.date BETWEEN $date AND $date1 ORDER BY date";
 
Mais ca ne fonctionne pas je pense que c'est un problème de syntax mais je ne trouve pas la solution
 
Merci d'avance

mood
Publicité
Posté le 29-03-2007 à 09:46:33  profilanswer
 

n°1535602
bpoujol
Posté le 29-03-2007 à 10:02:54  profilanswer
 


$select = "SELECT log.date,nbr_msg,groupnom,COUNT(*) AS nbr FROM log,Group_info WHERE  log.nbr_msg=1011 AND Group_info.groupnom='$groupe' AND log.date BETWEEN $date AND $date1
GROUP BY log.date,nbr_msg,groupnom ORDER BY date";


---------------
How can I save my little boy from Oppenheimer's deadly toy ? There is no monopoly of common sense on either side of the political fence
n°1535606
cerafin_la​mpion
Posté le 29-03-2007 à 10:07:52  profilanswer
 

Je vais essayer ca et je te tient au courant

n°1535610
cerafin_la​mpion
Posté le 29-03-2007 à 10:09:15  profilanswer
 

Ca marche pas ca m'affiche toujours la meme erreure.

n°1535642
ZeBix
edit > preview
Posté le 29-03-2007 à 10:32:17  profilanswer
 

bpoujol a écrit :

$select = "SELECT log.date,nbr_msg,groupnom,COUNT(*) AS nbr FROM log,Group_info WHERE  log.nbr_msg=1011 AND Group_info.groupnom='$groupe' AND log.date BETWEEN $date AND $date1
GROUP BY log.date,nbr_msg,groupnom ORDER BY date";

 

Loin de moi l'idée de relancer une vieille polémique (qui n'a pas de raison d'être ici) mais ton Count(*) ne va absolument rien solutionner et en plus ce n'est pas élégant.  :p

 

Maintenant pour le problème initial : c'est complètement illogique de demander à la fois un Count et à la fois une sélection de champs. Un count ne te retourne toujours que UNE ligne (à savoir le compte des rangs demandés) alors que log.date, nbr_msg etc. peuvent t'en retourner plusieurs. Ce n'est pas la restriction que tu mets dans le where (imaginons que tu n'aies effectivement qu'une ligne retournée) qui va changer cet état de fait --> problème de syntaxe car pas autorisé.

 

En bref, si tu veux compter le nombre de lignes dans ta table de log tu vas devoir te faire une requête séparée ... il doit peut-être y avoir moyen de contourner cela avec un group by mais j'ai pas le cerveau en mode conception ce matin, sorry  :ange:

Message cité 1 fois
Message édité par ZeBix le 29-03-2007 à 10:32:58
n°1535716
bpoujol
Posté le 29-03-2007 à 11:38:46  profilanswer
 

ZeBix a écrit :

Loin de moi l'idée de relancer une vieille polémique (qui n'a pas de raison d'être ici) mais ton Count(*) ne va absolument rien solutionner et en plus ce n'est pas élégant.  :p  
 
Maintenant pour le problème initial : c'est complètement illogique de demander à la fois un Count et à la fois une sélection de champs. Un count ne te retourne toujours que UNE ligne (à savoir le compte des rangs demandés) alors que log.date, nbr_msg etc. peuvent t'en retourner plusieurs. Ce n'est pas la restriction que tu mets dans le where (imaginons que tu n'aies effectivement qu'une ligne retournée) qui va changer cet état de fait --> problème de syntaxe car pas autorisé.
 
En bref, si tu veux compter le nombre de lignes dans ta table de log tu vas devoir te faire une requête séparée ... il doit peut-être y avoir moyen de contourner cela avec un group by mais j'ai pas le cerveau en mode conception ce matin, sorry  :ange:


 
Mon post avait pour but de montrer la présence du GROUP BY concernant les count(*) oui oui je sais c'est sale mais n'ayant pas mon image oracle "sur moi" je n'ai pas pu testé et au cas ça aurait été une simple erreur de frappe. :ange:  
 
@cerafin --> Tu pourrais peut etre nous donner l'erreur.


---------------
How can I save my little boy from Oppenheimer's deadly toy ? There is no monopoly of common sense on either side of the political fence
n°1536468
cerafin_la​mpion
Posté le 30-03-2007 à 16:01:14  profilanswer
 

Finalement j'ai fait un requête a part pour solutionner le problème
 
Merci à vous pour votre aide ;)
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Count et jointure

 

Sujets relatifs
Problème de jointure mysqlsyntaxe jointure externe oracle
Probleme d'association de requete Count et SelectProblème de jointure ? 'where clause'
jointure avec le plus grand...ORDER BY count(*) pour deux bases de données ensemble
ORDER BY avec countproblème jointure externe.
jointure + countProblème de count avec jointure
Plus de sujets relatifs à : Count et jointure


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR