Mysql Requête comparative complexe

WRInaute occasionnel
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
 
WRInaute discret
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?
 
WRInaute occasionnel
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.
 
WRInaute occasionnel
Si j'ai bien suivi ça doit donner ça
Code:
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.
 
WRInaute discret
silef a dit:
Si j'ai bien suivi ça doit donner ça
Code:
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
 
WRInaute impliqué
Alors je me lance sans avoir lu en détail tout le code dessus
Code:
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
 
WRInaute occasionnel
[Résolu]Mysql Requête comparative complexe

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
 
Discussions similaires
Haut