Jointure de 4 tables

Eléphanteau du PHP | 35 Messages

05 sept. 2012, 13:32

Bonjour chers amis,je veux faire une jointure avec 4 tables.
Quand j'essaie avec deux tables ça marche.Lorsque j'ajoute une autre table pas de résultat.je vais finir par bouffer mes doigts.
table1:Membre(id,login,pass_md5,nom,prenom,email)
table2:Categorie(id_categorie,libelle)
table3:Produit(reference,designation,id_categorie)
table4:entree_stock(id_entree_stock,date_saisie,date_mouvement,id,reference,id_categorie,quantite,prix_unitaire,prix_total)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 sept. 2012, 13:57

Logiquement, ce n'est pas plus compliqué avec 4 qu'avec 2, il suffit de rajouter un INNER JOIN (jointure interne : tu as bien au moins un enregistrement qui correspond dans chaque table) ou OUTER JOIN (jointure externe, il se peut qu'il n'y ait pas de résultat dans la table sollicitée) de plus et d'indiquer les conditions de la jointure dans le ON...

Montre nous ta requête, ca sera plus simple :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 35 Messages

05 sept. 2012, 15:36

voici la requête
"select date_saisie,date_mouvement,nom,prenom,reference,designation from entree_stock,membre,produit,categorie 
where entree_stock.id=membre.id 
and produit.id_categorie=produit.id_categorie
and entree_stock.reference=produit.reference";

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 sept. 2012, 15:49

salut,

y a des chances que cette condition soit toujours vrai : and produit.id_categorie=produit.id_categorie

ta requête devrait être plutot dans ce style
select date_saisie,date_mouvement,nom,prenom,reference,designation 
from entree_stock
join membre using(id)
join produit using(reference)
join categorie using(id_categorie)
Attention tu n'a pas besoin de l'id_categorie dans la table entree_stock puisse que l'a pas la table produit. a moins que ton entrée ai une catégorie différente du produit concerné ;)


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 35 Messages

05 sept. 2012, 16:17

j'ai essayé de faire comme tu me l'a demandé mais ça ne marche toujours pas.Voici la requête
"select date_saisie,date_mouvement,nom,prenom,reference,designation,libelle from entree_stock
join membre
on membre.id=entree_stock.id
join produit
on produit.reference=entree_stock.reference
join categorie
on categorie.id_categorie=entree_stock.id_categorie";
Moteur de base de données mysql

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 sept. 2012, 19:54

j'ai essayé de faire comme tu me l'a demandé mais ça ne marche toujours pas
ça aide pas tro pça, y a un message d'erreur ?

as tu essayé la requete dans un client sql ?

montre nous les create table des tables ainsi qu'un jeux de donnée que l'on puisse tester

@+
Il en faut peu pour être heureux ......