Liens entre trois tables

Résolu
frites.saucisse Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
frites.saucisse Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai trois tables t1, t2 et t3 comme ceci:
t1:
Id Para1
1 a
2 b
3 c

t2:
Id Para2
1 x
2 y

t3:
Id Para3
3 p

Comment écrire la requête pour obtenir le résultat suivant:
Id Para1 Para2 Para3
1 a x None
2 b y None
3 c None p

Un grand merci d'avance pour votre aide!

A voir également:

2 réponses

jee pee Messages postés 41521 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
Salut,

Il faut quelque chose comme :

SELECT t1.Id, Para1, Para2, Para3
FROM T1, T2, T3
LEFT OUTER JOIN T2 ON T1.ID = T2.ID
LEFT OUTER JOIN T3 ON T1.ID = T3.ID

cdlt
0
Utilisateur anonyme
 
Bonjour

Petit détail, il ne faut pas répéter dans le FROM les tables qui sont dans les JOIN :
SELECT t1.Id, Para1, Para2, Para3 
FROM t1
LEFT OUTER JOIN t2 ON t1.Id = t2.Id 
LEFT OUTER JOIN t3 ON t1.Id = t3.Id
0
jee pee Messages postés 41521 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
merci ;-)

Écrire une requête sans l'exécuter n'est souvent pas bon pour moi. La syntaxe est rarement exacte du premier coup.
0
Utilisateur anonyme
 
En fait, la syntaxe est correcte, mais la requête ne fait plus la même chose.
0
frites.saucisse Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Merci pour cette réponse. J'ai fait

select t.Para1,u.Para2, v.Para3
from t1 t,t2 u, t3 v
left outer join t2 on t.pid = u.pid
left outer join t3 on t.pid = v.pid

et j'obtiens une combinatoire de tous les paramètres de style
1 a x p
1 a y p
2 a x p
2 a y p
etc.

pas de case avec None comme souhaité...
Comment y remédier?
0
Utilisateur anonyme
 
Voir mon message précédent. Mais tu auras Null, pas None.
0
frites.saucisse Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Magnifique, ça marche. Merci pour vos réponses.
0