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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU] COUNT & JOIN

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] COUNT & JOIN

n°2220978
hogz
Posté le 27-02-2014 à 15:27:25  profilanswer
 

Bonjour,
 
j'ai fait une requête SQL avec un INNER JOIN et un COUNT et cela marche.
SELECT COUNT(NUMLIC) (c'est l'id)  AS total FROM table_licences INNER JOIN table_sport ON table_licences.NUMSPORT = table_sports.NUMSPORT  WHERE NUMCLUB="111" GROUP BY table_licences.NUMSPORT  
 
Affichage
---------------------------
 26
--------------------------
156
-------------------------
etc...
 
Cela m'affiche le nombre de licencié (TABLE_LICENCES) du Club 111 regroupé par SPORT
 
 
Je voudrait aller chercher le nom du sport qui se trouve dans la table_sports (NOMSPORT) et créer un affichage
-----------------------------
26       +    Tennis
------------------------------
156     +    Rugby
-----------------------------
etc......
 
Donc j'ai trois tables
TABLE_LICENCES avec trois rubriques NUMLIC - NUMCLUB - NUMSPORT
TABLE_SPORTS avec deux rubriques NUMSPORT - NOMSPORT
TABLE_CLUB avec NUMCLUB -  
 
 
j'ai bien essayé
SELECT table_licences.NUMLIC,table_licences.NUMSPORT,table_licences.NUMCLUB FROM table_licences WHERE table_licences.NUMCLUB='111'
INNER JOIN table_clubs ON  table_licences.NUMCLUB = table_club.NUMCLUB
INNER JOIN table_clubs ON  table_licences.NUMCLUB = table_club.NUMCLUB
GROUP BY table_licences.NUMSPORT
 
Mais là j'avoue que je cale...
Merci de m'éclairer


Message édité par hogz le 27-02-2014 à 19:34:20
mood
Publicité
Posté le 27-02-2014 à 15:27:25  profilanswer
 

n°2220984
flo850
moi je
Posté le 27-02-2014 à 16:00:40  profilanswer
 

Le where doit etre apres les jointures

Code :
  1. SELECT ...
  2. FROM table1 INNER JOIN table2...
  3. WHERE ...
  4. GROUP BY ...


---------------

n°2220993
hogz
Posté le 27-02-2014 à 17:05:35  profilanswer
 

Ok...c'est bien ça.
Merci pour ton aide.

n°2221274
gpl73
Posté le 03-03-2014 à 09:20:27  profilanswer
 

C'est sympa internet quand même: :bounce:  
tu as un exo , tu ne veux pas te casser la tête à le faire ...  
tu postes l'énoncé de celui ci et hop tu trouves des gens "sympa" qui te le font à ta place ... trop fort!
Je veux bien que nous n'ayons pas tous le même niveau en SQL... mais il ne faut pas abuser!  
Il y a des "trucs" que l'on peut faire seul ou alors vite changer d'orientation, de metier, quand on post des questions sur les bases même d'une requête sql...
on va bientôt avoir des posts : je ne sais pas faire un select ... merci de m'aider...
 
@flo850 : tu es trop sympa :)...
@hogz: tu cales vite, je pense...et surtout il faut écouter en cours, ou juste les relire,  chercher un peu sur internet...  
Car l'écritrure d'un join en SQL, tu dois juste l'avoir des millions de fois sur les forums...  
Ne serait ce qu'ici, il y a plein de posts...  
 
 
En plus d'être mal écrite (tu débutes, soit...), elle est mal construite ou mal copié collé...
"SELECT table_licences.NUMLIC,table_licences.NUMSPORT,table_licences.NUMCLUB  
FROM table_licences WHERE table_licences.NUMCLUB='111'  
INNER JOIN table_clubs ON  table_licences.NUMCLUB = table_club.NUMCLUB  
INNER JOIN table_clubs ON  table_licences.NUMCLUB = table_club.NUMCLUB
GROUP BY table_licences.NUMSPORT "
 
En reprenant les instructions de flo850(il existe aussi une 2nde façon d'écrire un inner join sql :"select * from table1 , table2 where table1.clé = table2.clé and condition(s) ...." ),
tu vas arriver à avoir la bonne syntaxe... mais après quoi, tu vas avoir des soucis encore...
 
Tu fais 2 inner join sur une même table avec les mêmes jointures :
cela ne sert vraiement à rien, un suffit ;)
cela ne doit même pas passer à l'éxécution car tu n'a pas qualifié les 2 tables différament et donc tu vas avoir des noms en double de table et de champs...:)
 
En plus, cela ne te remontra pas ce que tu cherches...(pourquoi faire un join sur la table table_club ? juste pour faire une requete qui ne sert à rien?
Tu n'as pas l'info dont tu as besoin dans cette table...
Tu as l'info sur la table, table_sport... donc fais le join sur celle-ci, directement...
Pour finir, tu fais un group by alors que tu ne fais aucune instruction necessitant à un groupage (count,sum, min, max ...) donc ça marchera vraiement pas !
 
 
Guillaume
 
NB.: dans ton requeteur sql, tu dois avoir aussi des messages de non exécution... et donc lire ceux et faire les corrections en conséquence...


Message édité par gpl73 le 03-03-2014 à 09:45:58

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

  [RESOLU] COUNT & JOIN

 

Sujets relatifs
Multiples variables dans "count" et "select" en XSLSQL : count multiple, groupby...
RESOLU Erreur dans un countSql count multiples
MYSQL problème count via out joinleft join X2
[SQL] Une requette avec DISTINCT et COUNTutilisation d'une SUM de plusieurs COUNT
SELECT et COUNT avec postgres avec INTERSECTION 
Plus de sujets relatifs à : [RESOLU] COUNT & JOIN


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