[SQL] jointure externe plusieurs tables [Résolu/Fermé]

Signaler
Messages postés
137
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
12 janvier 2014
-
Messages postés
251
Date d'inscription
vendredi 15 mai 2009
Statut
Contributeur
Dernière intervention
2 mars 2015
-
Bonjour,

voila j'ai une table d'identifiant (que j'appelerai table générale), avec tous les individus exisants et une dizaine d'autres tables contenant une part différente ou non de ces indivius (identifiant et attribut).
La table générale comporte 399028 ligne et je cherche a créer un table totale comportant le meme nombre de ligne mais avec toutes les infos des autres tables (ma table finale aura donc des null).
J'ai donc fait une jointure externe (left) de ce style:

SELECT *
FROM ((t_gen left JOIN t1 ON [t_gen].id = [t1].id) left JOIN t2 ON [t_gen].id = [t2].id) left JOIN t3 ON [t_gen].id = [t3].id) .... ainsi desuite avec les autres tables.

Seulement au final j'obtient bien plus de 399028 lignes...
Qq 1voit il pourquoi cela ne fonctionne pas?

Merci de votre,

math_elot

2 réponses

Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 314
Bonjour,

Tu peux obtenir le résultat que tu veux en utilisant le code ci-dessous
select t_gen.id , t_gen.col1 ,
(select t1.col1 from t1 where t1.id = t_gen.id) ,
(select t2.col1 from t2 where t2.id = t_gen.id) ,
(select t3.col1 from t3 where t3.id = t_gen.id),
etc,...
from t_gen

Il faut bien sur remplacer col1 par le nom correct de chaque colonne dans chaque table.
A plus
2
Merci

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

CCM 60511 internautes nous ont dit merci ce mois-ci

Salut Christounet,

d'abord merci de ta réponse, ma requete est dans access et il me parle d'un exist.
je pense que ya moyen de faire un requete externe (left ou autre) sans utiliser tout ca non?
une idée?
Messages postés
251
Date d'inscription
vendredi 15 mai 2009
Statut
Contributeur
Dernière intervention
2 mars 2015
52 > mat_elot
Bonjour,

Effectivement c'est faisable avec une requête externe.
En écrivant LEFT JOIN tu faisais une requête interne (INNER par défaut).

En explicitant LEFT OUTER JOIN ça devrait aller mieux.

Ceci dit, il faut encore que tes critères de jointure soient pertinents...

Plus d'info ici --> https://sqlpro.developpez.com/cours/sqlaz/jointures/
Rubrique III-D-2. Mécanisme en jeu


Bon courage.
Personne pour me filer un petit coup de main please? toujours pas trouvé pour ca et ca doit etre tout bete en plus