Mysql Requête comparative complexe


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 374
Inscription: 4 Mar 2005

Mysql Requête comparative complexe

Message le Mar Juin 16, 2009 14:00

Bonjour a tous,

je dois effectuer une comparaison entre quatre tables

ma première table (table1)contient plus de 40 000 enregistrements les 3 autres(table2,3 et 4) environ 1000 chacune
structure de la table 1 :

code, libelle, prixvente

les tables 2,3,4 sont structures comme ceci :

code, prixvente

je souhaite récupérer uniquement les prixvente de chaque table qui aurait le meme code que la table 1

exemple de ce que je souhaite obtenir :

table1.code, table1.libelle, table1.prixvente, table2.prixvente, table3.prixvente, table4.prixvente

J'ai tenté quelques requêtes mais qui n'ont pas abouties si vous avez une piste a me fournir ça serait sympas.

Merci

ejko
WRInaute discret
WRInaute discret
 
Messages: 124
Inscription: 31 Aoû 2006

Re: Mysql Requête comparative complexe

Message le Mar Juin 16, 2009 14:15

select b.prixvente
from table1 a, table2 b
where a.code = b.code
UNION
select b.prixvente
from table1 a, table3 b
where a.code = b.code
UNION
select b.prixvente
from table1 a, table4 b
where a.code = b.code

Ce n'est peut-être pas génial, mais ca doit marcher

Autre méthode à tester les jointures externe?


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 374
Inscription: 4 Mar 2005

Re: Mysql Requête comparative complexe

Message le Mar Juin 16, 2009 14:35

ce n'est pas tout a fait ce que j'esperais je n'obtiens grace a ta requete que les prix de vente sans savoir a quel codes ils correspondent.

ejko
WRInaute discret
WRInaute discret
 
Messages: 124
Inscription: 31 Aoû 2006

Re: Mysql Requête comparative complexe

Message le Mar Juin 16, 2009 14:41

webac a écrit:ce n'est pas tout a fait ce que j'esperais je n'obtiens grace a ta requete que les prix de vente sans savoir a quel codes ils correspondent.


Il suffit de rajouter dans les 3 select
b.code,
juste avant b.prixvente

silef
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 13 Jan 2006

Re: Mysql Requête comparative complexe

Message le Mar Juin 16, 2009 16:05

Si j'ai bien suivi ça doit donner ça
Code: Tout sélectionner
SELECT table1.code, table1.libelle, table1.prixvente, table2.prixvente, table3.prixvente, table4.prixvente FROM table1 INNER JOIN table2 ON table1.code=table2.code INNER JOIN table3 ON table1.code=table3.code INNER JOIN table4 ON table1.code=table4.code


Il est possible de remplacer les INNEr par des LEFT suivant tes besoins.

ejko
WRInaute discret
WRInaute discret
 
Messages: 124
Inscription: 31 Aoû 2006

Re: Mysql Requête comparative complexe

Message le Mar Juin 16, 2009 16:06

silef a écrit:Si j'ai bien suivi ça doit donner ça
Code: Tout sélectionner
SELECT table1.code, table1.libelle, table1.prixvente, table2.prixvente, table3.prixvente, table4.prixvente FROM table1 INNER JOIN table2 ON table1.code=table2.code INNER JOIN table3 ON table1.code=table3.code INNER JOIN table4 ON table1.code=table4.code


Je pense que ca doit fonctionner aussi. C'est peut-être même mieux


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 374
Inscription: 4 Mar 2005

Re: Mysql Requête comparative complexe

Message le Mer Juin 17, 2009 8:01

bonjour,

ces requêtes font planter mon pc


screuscreu
WRInaute impliqué
WRInaute impliqué
 
Messages: 968
Inscription: 14 Jan 2008

Re: Mysql Requête comparative complexe

Message le Mer Juin 17, 2009 10:23

Alors je me lance sans avoir lu en détail tout le code dessus
Code: Tout sélectionner
SELECT
table1.code,
table1.libelle,
table1.prixvente,
table2.prixvente,
table3.prixvente,
table4.prixvente

FROM table1
LEFT JOIN table2 ON (table1.code = table2.code)
LEFT JOIN table3 ON (table1.code = table3.code)
LEFT JOIN table4 ON (table1.code = table4.code)

WHERE
1


Essaye ça


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 374
Inscription: 4 Mar 2005

[Résolu]Mysql Requête comparative complexe

Message le Mer Juin 17, 2009 11:04

bon en fait tout est de ma faute je n'avais pas mis d'index sur les colonnes code, maintenant ça fonctionne parfaitement avec la requête de silef

Merci a tous


Aaarrrgggh
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 394
Inscription: 16 Mar 2009

Re: Mysql Requête comparative complexe

Message le Mer Juin 17, 2009 11:13

Très important les index, effectivement ça peut faire vraiment ramer Mysql s'ils ne sont pas bien créés.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité