Si je fais une jointure avec 2 bases non reliées dans leur schéma d'ensemble(ex : 2 tables de 2 bases différentes), avec comme lien de jointure , normalement si les bases sont comme suit (en structure) :
base DB :
table Analyse (id_analyse, id_lieu, id_temps, et des champs non clés)
base DWH :
table Question ( pk_question, id_question, id_produit, id_analyse, id_lieu, id_commentaire, valeur_rep)
et ce, sans produit cartésien non ?
Requête :
SELECT
a.PK_QUESTION
,a.ID_QUESTION
,a.ID_PRODUIT
,a.ID_LIEU
,b.ID_ANALYSE
,[champs non ID]
FROM IDWH.dbo.[QUESTION] AS a LEFT OUTER JOIN DB.dbo.ANALYSE AS b ON a.ID_LIEU = b.ID_LIEU
Parce que MS SQL 2k5 me retourne un beau produit cartésien de 47715 lignes au lieu de mes 8000 lignes de ma table de question...
Petite info : une analyse possède plusieurs questions, une question est liée à une seule analyse (id_question peut apparaître plusieurs fois cependant : pk_question permet de dissocier les id_questions des analyses)
pour un même lieu, j'ai plusieurs analyses, chaque analyse ayant les mêmes questions (différentes selon les lieux)
Suite à mes recherches, j'ai viré les champs vides (remplacé par -1), sans effet cependant...
j'ai essayé tout : cross join, right outer join, inner join, full outer join ! toujours le même résultat...
C'est un bug MS SQL ou un comportement que je ne maîtrise pas ?(qui sait ^^)
Au passage : j'arrive aussi à avoir en jointure externe gauche des résultats type : 833 gauche, 47 715 droite, jointure externe gauche, résultat 4000
c'est surprenant...
Edit by Troll : Supression du "Salut troll, comment ça va ?" fais attention à tes copier / coller