Problème de jointure à travers une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de jointure à travers une table

par sadeq » 21 févr. 2008, 20:32

Code : Tout sélectionner

select e.COUNTRY_CODE, cl.LABEL from EXCHANGE e INNER JOIN COUNTRY_CODE cc ON ( e.COUNTRY_CODE = cc.CODE ) INNER JOIN COUNTRY_LABEL cl ON ( cc.COUNTRY_ID = cl.COUNTRY_ID )
INNER JOIN : Jointure naturelle entre les tables (intersection)
Il faut respecter simplement l'ordre des jointures et utiliser les alias de tables définis

Problème de jointure à travers une table

par aganim07 » 21 févr. 2008, 16:42

Bonjour à tous :)

J'ai un problème en SQL. Mon SGBD est Oracle v8. Je vous expose mon problème.
Il implique trois tables : EXCHANGE, COUNTRY_CODE et COUNTRY_LABEL.

Voici les champs impliqués dans chaque table :

EXCHANGE :
---------------
COUNTRY_CODE


COUNTRY_CODE :
---------------------
COUNTRY_ID
CODE


COUNTRY_LABEL :
---------------------
COUNTRY_ID
LABEL

Sachant que l'on part du champ EXCHANGE.COUNTRY_CODE, comment faire pour extraire le champ COUNTRY_LABEL.LABEL ?

Je précise que le champ COUNTRY_CODE.CODE est identique à celui EXCHANGE.COUNTRY_CODE donc on va jointurer là-dessus ^^ Idem entre les deux champs COUNTRY_CODE.COUNTRY_ID et COUNTRY_LABEL.COUNTRY_ID.

Je débute en SQL donc j'espère que vous me comprendrez !!

J'ai tenté ceci :

select e.COUNTRY_CODE, cl.LABEL
from EXCHANGE e
LEFT OUTER JOIN COUNTRY_LABEL cl ON (cl.COUNTRY_ID = COUNTRY_CODE.COUNTRY_ID and e.COUNTRY_CODE = COUNTRY_CODE.CODE)

Mais Oracle me répond : SQL exception : ORA-00904: "COUNTRY_CODE"."CODE": invalid identifier

D'avance merci pour votre aide ;)