Mysql sum sur 2 tables
22 messages
• Page 1 sur 2 • 1, 2
- Recif
- WRInaute impliqué

- Messages: 816
- Inscription: 25 Aoû 2004
Mysql sum sur 2 tables
Bonjour,
J'essaye d'avoir le total de deux colonnes de deux tables mais les resultats sont faux...
J'obtiens un chiffre énorme (119000) alors que le resultat devrait être 5200...
Qu'est ce qui manque dans ma syntaxe?
Merci
J'essaye d'avoir le total de deux colonnes de deux tables mais les resultats sont faux...
- Code: Tout sélectionner
select sum(r.nombre + t.nombre) from table1 as r, table2 as t
J'obtiens un chiffre énorme (119000) alors que le resultat devrait être 5200...
Qu'est ce qui manque dans ma syntaxe?
Merci
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Re: Mysql sum sur 2 tables
Fais un
Tu vas vite comprendre ce qui pose problème.
- Code: Tout sélectionner
select * from table1 as r, table2 as t
Tu vas vite comprendre ce qui pose problème.
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: Mysql sum sur 2 tables
C'est parce que tu compte plusieurs fois le même nombre du à ta jointure mal faites (je pense).
Tu dois joindre entre deux colonnes normalement. Je ne peux pas t'en dire plus vu qu'on ne connaît pas la structure de tes tables.
Pour les jointures, préfère l'instruction JOIN.
Tu dois joindre entre deux colonnes normalement. Je ne peux pas t'en dire plus vu qu'on ne connaît pas la structure de tes tables.
Pour les jointures, préfère l'instruction JOIN.
-

Leonick - WRInaute accro

- Messages: 19595
- Inscription: 8 Aoû 2004
Re: Mysql sum sur 2 tables
visiblement tu fais un produit cartésien de tes tables : chaque ligne est couplée avec chacune des lignes de l'autre table, vu que tu n'as pas défini de relation entre les tables.Recif a écrit:Qu'est ce qui manque dans ma syntaxe?
Ce qui fait que si A contient 20 enr et B en contient 100, ton select en contiendra 20x100=2000
- Recif
- WRInaute impliqué

- Messages: 816
- Inscription: 25 Aoû 2004
Re: Mysql sum sur 2 tables
J'ai trouvé un truc qui marche, mais je sais pas si c'est optimisé...
- Code: Tout sélectionner
SELECT SUM(tmp.nombre) FROM ( SELECT nombre
FROM table1 where actif = '1'
UNION ALL
SELECT nombre
FROM table2 where actif = '1'
UNION ALL
SELECT nombre
FROM table3 where actif = '1'
) tmp;
- Recif
- WRInaute impliqué

- Messages: 816
- Inscription: 25 Aoû 2004
Re: Mysql sum sur 2 tables
Dolph a écrit:Un truc du style
- Code: Tout sélectionner
SELECT SUM(nombre)
FROM table1
NATURAL JOIN table2
Marche pas... Résultat : "NULL"
- Dolph
- WRInaute impliqué

- Messages: 631
- Inscription: 1 Mar 2011
Re: Mysql sum sur 2 tables
Nan mais faut l'adapter... 
Et j'suis sur qu'on peu encore optimiser le WHERE
- Code: Tout sélectionner
SELECT SUM(t1.nombre + t2.nombre + t3.nombre)
FROM table1 t1
NATURAL JOIN table2 t2
NATURAL JOIN table3 t3
WHERE t1.actif = 1 && t2.actif = 1 && t3.actif = 1
Et j'suis sur qu'on peu encore optimiser le WHERE
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Re: Mysql sum sur 2 tables
A mon avis niveau performance :
SELECT SUM(col1) FROM table1;
SELECT SUM(col2) FROM table2;
et tu ajoutes dans ton langage de prog.
A benchmarker mais je pense que ça sera 10 fois plus rapide que de faire des jointures ou autres.
Sinon il faudrait passer par une table temporaire.
SELECT SUM(col1) FROM table1;
SELECT SUM(col2) FROM table2;
et tu ajoutes dans ton langage de prog.
A benchmarker mais je pense que ça sera 10 fois plus rapide que de faire des jointures ou autres.
Sinon il faudrait passer par une table temporaire.
22 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Requete de classement SQL sur trois tables avec SUM, COUNT..
- Fonction SUM pour mysql
- Tables MySQL corrompues
- Tables MySQL liées
- [MySQL] : select de 2 tables et mysql_fetch_assoc
- Fusionner deux tables mysql
- Taille des tables MySQL
- [Résolu] MySQL lier 2 tables
- Update de 2 tables MySql [RESOLU]
- Mysql : select sur plusieurs tables?
- Gestion des langues et des sessions en PHP / MySQL
- Passage à l'heure d'été/hiver sur un forum phpBB 3
- Script de mise en cache des pages (PHP MySQL)
- Les différents systèmes de mise en cache des données
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Les blogs (Search Engine Strategies 2004 - San José)
- Sortie officielle de GoogleStats v2.0 !
- AdSense Tracking : statistiques détaillées sur les clics AdSense
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

