Avatar billede burningice Nybegynder
02. december 2002 - 10:19 Der er 7 kommentarer og
3 løsninger

hente relationsdata fra to tabeller

Lige til at starte med... hvorfor er det lige at der ikke er nogen decideret SQL kategori?!

Nå, men til sagen...

jeg har en database med tre tabeller, tblUsers, tblSchools og tblMySchool.

Hver tabel har en id/autonr som primær nøgle og der er oprettet relation imellem dem.
I tblMySchools har jeg felterne id, user, school og en række kan se sådan her ud: 32,1,54

Jeg skal nu have lavet en query, så jeg får et output der viser username og school, for en given bruger. Jeg har indtil videre følgende sql

SELECT tblUsers.username, tblSchools.school
FROM (tblSchools INNER JOIN tblUsers ON tblSchools.id = tblUsers.id) INNER JOIN tblMySchools ON (tblUsers.id = tblMySchools.user) AND (tblSchools.id = tblMySchools.school)
WHERE (((tblUsers.id)=1) AND ((tblSchools.id)=[tblMySchools].[school]));

problemet er bare at den kun viser een record, selvom der f.eks. findes 6 records i tblMySchools der har userid 1
Avatar billede erikjacobsen Ekspert
02. december 2002 - 10:23 #1
Du sammenlligner i den første INNER JOIN en id på en skole med en id
på en user. Det kan man ikke - vel ?
Avatar billede juks Novice
02. december 2002 - 10:23 #2
prøv at venstre-klikke på relationen og vælg joinegenskaber og vælgalle poster fra tblmyschools
Avatar billede jkrons Professor
02. december 2002 - 10:35 #3
Kan følgende ikke gøre det? Den finder brugernavn og skole, for alle de, der i Myscools har bruger ID = 1.
Her bruger1 altså flere skoler, bliver de også vist da sammenbindingen mellem bruger og skole nmetop sker i denne tabel.
Du er jo ikke interesseret i skoler uden brugere eller brugere uden skoler, så det bør være godt nok.

SELECT tblmyschool.userid tblusers.username, tblschools.school
FROM tblusers, tblschools
WHERE tblmyschool=1
Avatar billede jkrons Professor
02. december 2002 - 10:35 #4
Bortset fra, at den i myscool hedder user, ikke userID som jeg skrev.
Avatar billede jkrons Professor
02. december 2002 - 10:36 #5
og så lige en ting mere:

FROM tblmyschool, tblusers, tblschools
Avatar billede burningice Nybegynder
02. december 2002 - 11:54 #6
jeg har fået den her til at virke

SELECT tblUsers.username, tblSchools.school, tblMySchools.start, tblMySchools.end, tblMySchools.class
FROM tblUsers INNER JOIN (tblSchools INNER JOIN tblMySchools ON tblSchools.id = tblMySchools.school) ON tblUsers.id = tblMySchools.user
WHERE (((tblMySchools.user)=[hvilken user?]) AND ((tblSchools.id)=[tblMySchools].[school]));


fejlen lå i, at access havde lavet en underlig relation mellem user og myschools... den slettede jeg, og så virkede det efter hensigten
Avatar billede jkrons Professor
02. december 2002 - 12:22 #7
Godt at det virker!
Avatar billede burningice Nybegynder
02. december 2002 - 13:26 #8
i skal da lige have lidt point for at vise interresse for mit spm :)
Avatar billede burningice Nybegynder
02. december 2002 - 13:28 #9
det var forresten erikjacobsen der havde fat i noget af det rigtige.. den havde nemlig lavet en dobbeltrelation fra tblUsers til tblMySchools på tblUsers/id til tblMySchools/user OG id... det dur jo ikke...
Avatar billede jkrons Professor
02. december 2002 - 16:49 #10
Tak for point!
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