Je dois faire une requête que interne joint 3 ID différents d'une table avec l'ID d'un autre, puis afficher la valeur de nom de cette table dans mon sélectionnez une requête. Je vais essayer de le rendre un peu plus clair.Inner rejoindre plusieurs colonnes ID avec ID dans la table étrangère pour afficher plusieurs colonnes de nom
Dans mon une table, j'ai ces 3 colonnes avec id:
Book_Kalender.BS_ID,
Book_Kalender.BS_ID_Prio2,
Book_Kalender.BS_ID_Prio3,
Ces doivent tous être intérieur joint à une colonne dans une autre table, qui contient le nom associé à ces ids:
Book_Sommerhuse.[BS_ID]
Dans ma requête SELECT j'inclue la colonne de nom de la table étrangère. Je veux à la place avoir 3 colonnes, chacune avec le nom associé qui correspond à l'ID.
Book_Sommerhuse.BS_Navn
Jusqu'à présent, j'ai essayé de faire plusieurs jointures internes en utilisant le mot-clé ET:
INNER JOIN Book_Kalender ON Book_Sommerhuse.[BS_ID] = Book_Kalender.[BS_ID]
AND Book_Sommerhuse.[BS_ID] = Book_Kalender.[BS_ID_Prio2]
Mais ce retour et vue vide de ma requête de sélection. Je ne sais pas non plus comment créer de nouvelles colonnes pour chaque nom associé à l'ID.
requête complète:
SELECT
Book_Kalender.BK_ID,
Book_Kalender.BK_DatoFra,
Book_Kalender.BK_DatoTil,
Book_Kalender.BK_M_Navn,
Book_Kalender.BK_M_Adr,
Book_Kalender.BK_M_PostBy,
Book_Kalender.BK_M_Afd,
Book_Kalender.BK_M_MedArbNr,
Book_Kalender.BK_M_Tlf,
Book_Kalender.BK_M_Email,
Book_Kalender.BK_Tidl_Lejet,
Book_Kalender.BK_Tidl_Lejet_Txt,
Book_Kalender.BS_ID,
Book_Kalender.BS_ID_Prio2,
Book_Kalender.BS_ID_Prio3,
A.BS_Navn as BS_Navn1,
B.BS_Navn as BS_Navn2,
c.BS_Navn as BS_Navn3,
coalesce(A.BS_Navn,B.BS_Navn,c.BS_Navn) as BS_Navn
FROM
Book_Kalender
LEFT JOIN Book_Sommerhuse A ON
Book_Kalender.BS_ID = A.BS_ID
LEFT JOIN Book_Sommerhuse B ON
Book_Kalender.BS_ID_Prio2 = B.BS_ID
LEFT JOIN Book_Sommerhuse C ON
Book_Kalender.BS_ID_Prio3 = C.BS_ID
WHERE
Book_Kalender.BK_DatoFra BETWEEN #10/15/2017# AND #12/31/2018#;
Est-ce que les ID de la table Book_Kalender se réfèrent tous au même nom ou à des noms différents? –
Je pense que votre table Book_Kalendar a besoin de normalisation - chaque fois que vous stockez la même chose dans plusieurs colonnes dans la même table, il est temps pour une sous-table contenant ces ID, avec une clé étrangère de retour à la table parent. – ADyson
Ce sont des identifiants différents, ils font donc référence à des noms différents dans la table Book_Sommerhuse. – Leth