2 Count() sur deux tables différentes. [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 23-07-2004 à 15:09:39
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
Marsh Posté le 23-07-2004 à 15:48:43
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
Marsh Posté le 23-07-2004 à 16:13:46
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
Marsh Posté le 23-07-2004 à 16:20:33
drasche a écrit : UNION n'est dispo qu'à partir de MySQL 4. Si tu es encore en 3.23, ça ne marchera pas |
Zieute le lien de mathix. Je voulais utilisé sa technique.
Mais bon, peu importe, une requete SQL de plus hop!
Marsh Posté le 23-07-2004 à 16:28:32
essaye ca :
Code :
|
Marsh Posté le 23-07-2004 à 16:35:01
ou peut etre ca :
Code :
|
sinon fait juste un test avec la requete suivante et dis nous ce que tu obtiens
Code :
|
Marsh Posté le 23-07-2004 à 17:46:12
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.
Marsh Posté le 23-07-2004 à 17:49:53
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 ça rame ! Pour des raisons de perfs mieux vaut faire 2 requêtes toutes simples et facile à maintenir et à comprendre.
Marsh Posté le 23-07-2004 à 14:04:30
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.