JOINTURE EXTERNE DE 03 TABLES

Le
MAJHAMM
Prière me preciser la sunytax de la requete SQL pour étabir une jointure
externe entre 03 tables (accès)

pour 02 tables s'a marche mais pour 3 tables je n'ai pas pu trouver la formule

merci d'avance
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jean-marc
Le #15509141
"MAJHAMM" news:
Prière me preciser la sunytax de la requete SQL pour étabir une jointure
externe entre 03 tables (accès)

pour 02 tables s'a marche mais pour 3 tables je n'ai pas pu trouver la


formule

merci d'avance



DEFINITIONS
-----------
TA
pka
data_a

TB
pkb
fka
data_b

TC
pkc
fkb
data_c

TA_CONTENT
pka data_a
1 dataA1
2 dataA2
3 dataA3

TB_CONTENT
pkb fka data_b
1 1 dataB_1001
2 1 dataB_1002
3 2 dataB_2001
4 2 dataB_2002
5 3 dataB_3001
6 3 dataB_3002


TC_CONTENT
pkc fkb data_c
1 1 a
2 1 b
3 2 c
4 2 d
5 3 e
6 3 f
7 4 g
8 4 h
9 5 i
10 5 j
11 6 k
12 6 l

JOINTURE 3 TABLES
-----------------

SELECT TA.data_a, TB.data_b, TC.data_c
FROM (TA LEFT JOIN TB ON TA.pka = TB.fka) LEFT JOIN TC ON TB.pkb = TC.fkb;

Resultat :

data_a data_b data_c
dataA1 dataB_1002 d
dataA1 dataB_1002 c
dataA1 dataB_1001 b
dataA1 dataB_1001 a
dataA2 dataB_2002 h
dataA2 dataB_2002 g
dataA2 dataB_2001 f
dataA2 dataB_2001 e
dataA3 dataB_3002 l
dataA3 dataB_3002 k
dataA3 dataB_3001 j
dataA3 dataB_3001 i
Gloops
Le #15327351
Salut,

Dans l'index de MSDN j'ai cherché "JOIN", et à "JOIN keyword" ça m'a
répondu une page avec deux liens dont un vers "INNER JOIN operation".

Là-dedans, avant le dernier paragraphe je lis :

You can also nest JOIN statements using the following syntax:

SELECT fields
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON table3.field3 compopr tablex.fieldx)]
ON table2.field2 compopr table3.field3)
ON table1.field1 compopr table2.field2;

ayant été précisé que compopr est l'opérateur de comparaison (ah ben
oui, comparison operator).

compopr Any relational comparison operator: "=," "<," ">," "<=," ">=,"
or "<>."

Ce n'est vraiment pas ça que tu cherches ?

Je ne te cache pas que les crochets autour des parenthèses ouvertes
m'intriguent beaucoup, cela étant la place des guillemets dans la
description du comparateur m'intrigue encore plus.
______________________________________
MAJHAMM a écrit, le 29/09/2005 10:39 :

Prière me preciser la sunytax de la requete SQL pour étabir une jointure
externe entre 03 tables (accès)

pour 02 tables s'a marche mais pour 3 tables je n'ai pas pu trouver la formule

merci d'avance


Jean-Marc
Le #15327221
Hello,

non ce n'est pas ça qu'il chercher car il a dit jointure "EXTERNE".
Inner join est une jointure interne. LEFT et RIGHT JOIN sont utilisées
pour les jointures externes.

voir par exemple ici, la différence est bien expliqué:
http://www.laltruiste.com/document.php?url=http://www.laltruiste.com/annexe/algebre_jointureexterne.html

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;


"Gloops" news:433f0c61$0$5386$
Salut,

Dans l'index de MSDN j'ai cherché "JOIN", et à "JOIN keyword" ça m'a
répondu une page avec deux liens dont un vers "INNER JOIN operation".

Là-dedans, avant le dernier paragraphe je lis :

You can also nest JOIN statements using the following syntax:

SELECT fields
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON table3.field3 compopr tablex.fieldx)]
ON table2.field2 compopr table3.field3)
ON table1.field1 compopr table2.field2;

ayant été précisé que compopr est l'opérateur de comparaison (ah ben
oui, comparison operator).

compopr Any relational comparison operator: "=," "<," ">," "<=," ">=,"
or "<>."

Ce n'est vraiment pas ça que tu cherches ?

Je ne te cache pas que les crochets autour des parenthèses ouvertes
m'intriguent beaucoup, cela étant la place des guillemets dans la
description du comparateur m'intrigue encore plus.
______________________________________
MAJHAMM a écrit, le 29/09/2005 10:39 :

> Prière me preciser la sunytax de la requete SQL pour étabir une jointure
> externe entre 03 tables (accès)
>
> pour 02 tables s'a marche mais pour 3 tables je n'ai pas pu trouver la


formule
>
> merci d'avance



Gloops
Le #15327181
Effectivement, j'ai dégainé un peu vite.
Une recherche sur "OUTER JOIN" aurait été plus appropriée.
On y trouve plein de trucs, mais pas aussi lisibles que ce que tu dis.
________________________________________
Jean-Marc a écrit, le 02/10/2005 12:08 :

Hello,

non ce n'est pas ça qu'il chercher car il a dit jointure "EXTERNE".
Inner join est une jointure interne. LEFT et RIGHT JOIN sont utilisées
pour les jointures externes.

voir par exemple ici, la différence est bien expliqué:
http://www.laltruiste.com/document.php?url=http://www.laltruiste.com/annexe/algebre_jointureexterne.html



je crois bien qu'on voulait dire
ON Ra.B = Rb.E
Publicité
Poster une réponse
Anonyme