bonjour
je travaille sous Oracle 9
jai un resultat de requete que je n'explique pas

jai 3 table a, b et c liées par integrité referentielle

chacune delle a une colonne appelée dtdeff

donc losque jexecute la requete suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT dtdeff 
FROM A,B, C
WHERE  A.fkb = B.pkb
AND B.fkc = c.pkc
jai un
Ora 00918 : definition de colonne ambigue
ce qui est normal car je nai pas specifié la table d'ou provient le dtdeff
jusque la je comprends ....


par contre quand jexecute la meme requete mais avec des jointures normalisées sans specifier lorigine de ma dtdeff
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT dtdeff 
FROM A
inner join B ON A.fkb = B.pkb
inner join C ON B.fkc = c.pkc
je ne pas de message derreur et il me ramene les dtdeff de B !!!!

alors la je ne comprends plus rien ....
pourkoi je nai plus de message derreur ora00918 ????
pour me remène t il les dtdeff de la table B ???
pourquoi pas les dtdeff de la table A ?? ou C ????

cest vrai kil suffirai que je fasse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT A.dtdeff 
FROM A
inner join B ON A.fkb = B.pkb
inner join C ON B.fkc = c.pkc
pour solutionner mon probleme...
mais jaime bien comprendre les truc ;-)
si kelkun a une idée ....