Avatar billede bojohansen Nybegynder
27. juli 2004 - 14:38 Der er 3 kommentarer og
1 løsning

M-T-M og 1-T-M forespørgelse hvor M-T-M er tom

T_PersonInfo (HovedTable)
Id    FNavn   
1    1_Steen
2    2_Steen

T_PersonUddannelse (Samlings Table hvor en person kan have flere entiteter)
Id    UId
1    1
1    2

T_Uddannelse (Her findes teksten til de uddannelser som man kan have)
Id    TxtDk    TxtNo    TxtSe    TxtEn
1    Håndverker           
2    Datamatiker

Som i kan se, så har 1_Steen Håndværker & Datamatiker som uddannelse

2_Steen Har ingen uddannelse

SELECT T_PersonInfo.FNavn, T_Uddannelse.TxtDk
FROM (T_PersonInfo INNER JOIN T_PersonUddannelse ON T_PersonInfo.Id = T_PersonUddannelse.Id) INNER JOIN T_Uddannelse ON T_PersonUddannelse.UId = T_Uddannelse.Id
WHERE (((T_PersonInfo.Id)=1));

FNavn    TxtDk
1_Steen    Håndverker
1_Steen    Datamatiker

Denne SQL kommer med info på 1_Steen, Where T_PersonInfo.Id=1
Hvis jeg sætter, Where T_PersonInfo.Id=2
får jeg ikke nogen records.

Det jeg vil er at have records ud selv om en person ikke har nogen uddannelse, altså jeg vil stadigt have T_PersonInfo.FNavn oplyst.

FNavn    TxtDk
2_Steen    Null
2_Steen    Null

Skal jeg gemme en værdi feks. 0
Id    UId
1    1
1    2
2    0

i T_PersonUddannelse for at kunne lave udtrækket ?

Alt i alt kommer der 3 M-T-M og 11 1-T-M i den endelige forespørgelse.
Avatar billede jensen363 Forsker
27. juli 2004 - 14:42 #1
Udskift INNER JOIN med LEFT JOIN eller RIGHT JOIN for at medtage alle records fra T_PersonInfo
Avatar billede bojohansen Nybegynder
27. juli 2004 - 14:54 #2
Aaaaaaahhhh, ja selvfølgelig.
Så skal begge INNER JOINS laves om til LEFT JOIN.
Mener at have læst at INNER JOINS ikke understøttes inde i et LEFT/RIGHT JOIN.
Avatar billede jensen363 Forsker
27. juli 2004 - 14:56 #3
Det er vist korrekt c",)
Avatar billede bojohansen Nybegynder
27. juli 2004 - 15:00 #4
Tak for det.

Puha, det kommer til at tage et par timer inden jeg helt vænner mig til SQL i Relations DB'er.
Det var så let den gang jeg kun brugte et stort table ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester