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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] 2 Count() sur deux tables différentes.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] 2 Count() sur deux tables différentes.

n°804416
smilm
Posté le 23-07-2004 à 14:04:30  profilanswer
 

Salut !
 
J'aimerais avoir le nombre d'enregistrement de deux tables avec une requete.
 
Je pensais donc a un:
 
$req="SELECT DISTINCT COUNT(t1.id), COUNT(t2.id) FROM t1,t2";
 
Seulement il faut impérativement un GROUP BY, et dans ce cas, ca me "casse tout".
Exemple:
t1=4 enregistrements
t2= 3 enregistrements
$req="SELECT DISTINCT COUNT(t1.id), COUNT(t2.id) FROM t1,t2 GROUP BY t1.id";
Résultat:
Count(t1.id)=4
Count(t2.id)=4
 
Faut il forcément que je fasse deux requetes ?
 
Merci d'avance.

mood
Publicité
Posté le 23-07-2004 à 14:04:30  profilanswer
 

n°804539
mathix
mathix@jabber.org
Posté le 23-07-2004 à 15:09:39  profilanswer
 

tu peux faire ca avec une requête et "UNION"
si jamais tu utilises une version de MySQL qui ne gère pas l'union regarde là pour le bricoler toi même :
http://codewalkers.com/tutorials/33/2.html

n°804633
smilm
Posté le 23-07-2004 à 15:48:43  profilanswer
 

Je n'arrive pas a faire fonctionner correctement le substitue de UNION
 
Voilà ma requete:
 
SELECT COUNT(alliance_candidat.id), COUNT(alliance_exclusion.id)
FROM _dummy as D
LEFT JOIN alliance_candidat ON (D.num=0)
LEFT JOIN alliance_exclusion ON (D.num=1)  
 
Actuellement j'ai 3 enregistrements dans alliance_candidat et 4 enregistrements dans alliance_exclusion.
 
Résultat de la requete:
 
COUNT(alliance_candidat.id)  COUNT(alliance_exclusion.id)  
0                                                            4


Message édité par smilm le 23-07-2004 à 15:48:52
n°804693
drasche
Posté le 23-07-2004 à 16:13:46  profilanswer
 

UNION n'est dispo qu'à partir de MySQL 4. Si tu es encore en 3.23, ça ne marchera pas :/
 
Par nature, la jointure va te donner un résultat erroné :/ Il faut que tu fasses 2 requêtes séparées :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°804701
smilm
Posté le 23-07-2004 à 16:20:33  profilanswer
 

drasche a écrit :

UNION n'est dispo qu'à partir de MySQL 4. Si tu es encore en 3.23, ça ne marchera pas :/
 
Par nature, la jointure va te donner un résultat erroné :/ Il faut que tu fasses 2 requêtes séparées :/


 
Zieute le lien de mathix. Je voulais utilisé sa technique.
Mais bon, peu importe, une requete SQL de plus hop!

n°804715
mathix
mathix@jabber.org
Posté le 23-07-2004 à 16:28:32  profilanswer
 

essaye ca :  

Code :
  1. SELECT COUNT(alliance_candidat.*), COUNT(alliance_exclusion.*)
  2. FROM _dummy as D
  3. LEFT JOIN alliance_candidat ON (D.num=0)
  4. LEFT JOIN alliance_exclusion ON (D.num=1)


Message édité par mathix le 23-07-2004 à 16:29:04
n°804736
mathix
mathix@jabber.org
Posté le 23-07-2004 à 16:35:01  profilanswer
 

ou peut etre ca :

Code :
  1. SELECT COUNT(alliance_candidat.*), COUNT(alliance_exclusion.*)
  2. FROM _dummy as D
  3. LEFT JOIN alliance_candidat ON (D.num=0)
  4. LEFT JOIN alliance_exclusion ON (D.num=1)
  5. GROUP BY D.num


 
sinon fait juste un test avec la requete suivante et dis nous ce que tu obtiens

Code :
  1. SELECT *
  2. FROM _dummy as D
  3. LEFT JOIN alliance_candidat ON (D.num=0)
  4. LEFT JOIN alliance_exclusion ON (D.num=1)


 

n°804827
smilm
Posté le 23-07-2004 à 17:46:12  profilanswer
 

sur tes 3 propositions:
les 2 premieres ne marche pas (wrong syntax)
La 3e renvoi ca:
 
num  id  id_alliance  id_membre  needed  avoir  compteur  id  id_alliance  id_membre  id_demandeur  needed  avoir  compteur  
1 NULL NULL NULL NULL NULL NULL 1 1 7 11 0 0 0  
1 NULL NULL NULL NULL NULL NULL 2 2 5 3 0 0 0  
1 NULL NULL NULL NULL NULL NULL 3 1 9 8 0 0 0  
1 NULL NULL NULL NULL NULL NULL 4 9 46 0 4 0 0  
2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL  
 
 
Rien de passionnant je pense.

n°804831
pains-aux-​raisins
Fatal error
Posté le 23-07-2004 à 17:49:53  profilanswer
 

drasche a écrit :

UNION n'est dispo qu'à partir de MySQL 4. Si tu es encore en 3.23, ça ne marchera pas :/
 
Par nature, la jointure va te donner un résultat erroné :/ Il faut que tu fasses 2 requêtes séparées :/


Par nature la jointure ça rame ! Pour des raisons de perfs mieux vaut faire 2 requêtes toutes simples et facile à maintenir et à comprendre. :)


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

  [MySQL] 2 Count() sur deux tables différentes.

 

Sujets relatifs
Comparer deux dates (Php/MySQL)Tables liées sous access
[MYSQL] Suppression d'enregistrements avec une jointure de tableconexion access-MySQL
Insertion sélection multiple BD Mysqlfoxserv python mysql
menu php mysqlutilisation de mysql_free_result
[PHP/MYSQL] Session et authentification[php-mysql] probleme de décryptage de mots de passe [resolu]
Plus de sujets relatifs à : [MySQL] 2 Count() sur deux tables différentes.


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