Problème de requête à double jointure ... HELP ! [Résolu]

Messages postés
216
Date d'inscription
dimanche 13 janvier 2002
Statut
Modérateur
Dernière intervention
7 novembre 2009
- - Dernière réponse : nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
- 24 juin 2005 à 20:04
Hello,

Voici mon problème.
J'ai une table "Table_3" avec 3 champs
le premier ID numérique
le deuxième ID2 numérique
le troixième ID3 numérique

j'ai une seconde table qui est "Table_4"
avec 2 champs
le premier ID numérique
le deuxième TX texte.

Sachant qu'il y a deux contraintes d'intégrités qui sont :
Table_3.ID2 = Table_4.ID
et
Table_3.ID3=Table_4.ID

Il y a donc deux jointure entre les deux tables.
Au départ, je réalise un SELECT du TX en relation avec le champs ID_2 telque
select Table_3.ID,Table_4.TX FROM Table_3,Table_4 WHERE Table_3.ID2=Table_4.ID

Jusque la tout est correcte, MAIS ......

J'aimerais pouvoir récupérer le TX en relation avec le champs Table_3.ID3 aussi

Que faire ???? HELP !

vladam
(pour vous servir :) )
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
3
Merci
Salut,

La double jointure est sans doute la solution.



select eBoutiKs_PRODUITS.pro_ref,eBoutiKs_cat1.CAT_TITRE,cat2.CAT_TITRE FROM eBoutiKs_PRODUITS

INNER JOIN eBoutiKs_CATEGORIES as cat1

ON eBoutiKs_PRODUITS.PRO_CAT=cat1.CAT_Id

INNER JOIN eBoutiKs_CATEGORIES as cat2 eBoutiKs_PRODUITS.PRO_CATROOT=cat2.CAT_Id



Voila

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 137 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
0
Merci
Salut



select Table_3.ID,Table_4.TX FROM Table_3,Table_4 WHERE Table_3.ID2=Table_4.ID AND Table_3.ID3=Table_4.ID



Ou



select Table_3.ID,Table_4.TX FROM Table_3

INNER JOIN Table_4

ON Table_3.ID2=Table_4.ID AND Table_3.ID3=Table_4.ID



Je pense que ces deux requetes resouds ton probleme



Voila
Commenter la réponse de nhervagault
Messages postés
216
Date d'inscription
dimanche 13 janvier 2002
Statut
Modérateur
Dernière intervention
7 novembre 2009
0
Merci
Je ne pense pas, car Table_3.ID3 et Table_3.ID4 n'ont pas le même ID, justement.

Voici la vrai requête :
select eBoutiKs_PRODUITS.pro_ref,eBoutiKs_CATEGORIES.CAT_TITRE FROM eBoutiKs_PRODUITS
INNER JOIN eBoutiKs_CATEGORIES
ON eBoutiKs_PRODUITS.PRO_CAT=eBoutiKs_CATEGORIES.CAT_Id AND eBoutiKs_PRODUITS.PRO_CATROOT=eBoutiKs_CATEGORIES.CAT_Id


en fait, les catégories sont classés dans la table : eBoutiKs_CATEGORIES
Un produit ( eBoutiKs_PRODUITS ) possède deux références à la table catégories (eBoutiKs_CATEGORIES) car le produit fait partie de DEUX catégories à la fois.

ce que j'aimerais c'est un select de eBoutiKs_PRODUITS.pro_ref et des deux titre ( eBoutiKs_CATEGORIES.CAT_TITRE ) des deux catégories dont le produit fait partie.

Avec ta requête, il faut que les deux champs ID des catégories soit idem. et ce n'est pas le cas, car il s'agit bien de deux catégories.

HELP :-)

vladam
(pour vous servir :) )
Commenter la réponse de cs_vladam
Messages postés
216
Date d'inscription
dimanche 13 janvier 2002
Statut
Modérateur
Dernière intervention
7 novembre 2009
0
Merci
Merci :-)

la syntaxe exact est :
select eBoutiKs_PRODUITS.pro_ref,cat1.CAT_TITRE,cat2.CAT_TITRE FROM eBoutiKs_PRODUITS
INNER JOIN eBoutiKs_CATEGORIES as cat1
ON eBoutiKs_PRODUITS.PRO_CAT=cat1.CAT_Id
INNER JOIN eBoutiKs_CATEGORIES as cat2
ON eBoutiKs_PRODUITS.PRO_CATROOT=cat2.CAT_Id

THANKS !

vladam
(pour vous servir :) )
Commenter la réponse de cs_vladam
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
0
Merci
Excuse pour la syntaxe je l'ai fait de tete par copier coller
Commenter la réponse de nhervagault