Avatar billede kapoou Nybegynder
11. januar 2005 - 12:20 Der er 15 kommentarer

SQL inner join

Jeg har 3 tabeller.

Tabel1:
medieNr
medienavn


Tabel2:
medieNrRef
journalistNrRef

Tabel3:
journalistNr
journalistNavn

Hvordan får jeg hentet medienavn, og journalistnavn ud der hvor de relaterer i Tabel2 ?
Avatar billede yellow Nybegynder
11. januar 2005 - 12:23 #1
select tabel1.medienavn, tabel3.journalistnavn from tabel1
inner join tabel2 on tabel2.medienrref = tabel1.medienr
inner join tabel3 on tabel3.jurnalistnr = tabel2.journalistnrref
Avatar billede kapoou Nybegynder
12. januar 2005 - 11:50 #2
Hvad er der i vejen med følgende.

'SQLstr = "select * " & _
'" from tblMedier inner join tblKunder_Medier_Link on tblKunder_Medier_Link.medienrRef = tblMedier.medienr" & _
'" inner join tblJournalister on tblJournalister.MedieNrRef = tblKunder_Medier_Link.MedieNrRef"


jeg vil gerne have journalistnavn samt medienavn
Avatar billede kapoou Nybegynder
12. januar 2005 - 11:52 #3
Det skal lige siges at Tabel2 (tblKunder_Medier_Link ) indeholder

MedienrRef
KundenrRef

og Tabel3 (tblJournaliste) indeholder
JournalistNavn
MedienrRef
Avatar billede yellow Nybegynder
12. januar 2005 - 11:59 #4
lad vær med at bruge * (select *).
Du har f.eks. MedieNrRef i mere end en tabel, så ved select * kan den ikke finde ud af hvilken den skal vælge (selvom de er ens).

Gør som jeg skrev i første indlæg og udspecificer hvilke felter du vil ha ud.
Avatar billede kapoou Nybegynder
12. januar 2005 - 12:04 #5
følgende

SQLstr = "select tblMedier.medienavn, tblJournalister.journalistnavn " & _
" from tblMedier inner join tblKunder_Medier_Link on tblKunder_Medier_Link.medienrRef = tblMedier.medienr" & _
" inner join tblJournalister on tblJournalister.MedieNrRef = tblKunder_Medier_Link.MedieNrRef"

giver denne fejl

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'tblKunder_Medier_Link.medienrRef = tblMedier.medienr inner join tblJournalister on tblJournalister.MedieNrRef = tblKunder_Medier_Link.MedieNrRef'.

Er det mig der er helt væk?
Avatar billede yellow Nybegynder
12. januar 2005 - 13:30 #6
hmm, tror der går noget galt i asp opbygningen af din SQLstr.
Prøv at udskrive varialben SQLstr inden du udfører den (response.write SQLstr).
Avatar billede yellow Nybegynder
12. januar 2005 - 13:38 #7
Hmm, eller noget med Access (jeg gik ud fra sql server i de tidligere). Prøv:
SQLstr = "SELECT tblMedier.medienavn, tblJournalister.journalistnavn "&_
        "FROM (tblMedier INNER JOIN tblKunder_Medier_Link ON tblMedier.medienr = tblKunder_Medier_Link.medienrRef) "&_
        "INNER JOIN tblJournalister ON tblKunder_Medier_Link.journalistNrRef = tblJournalister.journalistNr"
Avatar billede kapoou Nybegynder
12. januar 2005 - 13:42 #8
Det kører i mySQL
Avatar billede kapoou Nybegynder
12. januar 2005 - 13:42 #9
Eller det gør det ikke men jeg bruger mySQL :)
Avatar billede yellow Nybegynder
12. januar 2005 - 13:44 #10
mySQL med en ODBC Microsoft Access Driver?
Avatar billede kapoou Nybegynder
12. januar 2005 - 13:50 #11
Undskyld det er mig der et kvaj nu. Det er i access
Avatar billede yellow Nybegynder
12. januar 2005 - 13:52 #12
ok, mit sidste forslag? gav det samme fejl?
Avatar billede kapoou Nybegynder
12. januar 2005 - 13:55 #13
Med dit forslag får jeg følgende fejl.

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
Avatar billede kapoou Nybegynder
12. januar 2005 - 13:57 #14
Det skal så siges at tblKunder_Medier_Link.journalistNrRef ikke findes
Avatar billede kapoou Nybegynder
14. januar 2005 - 10:23 #15
jeg kan sgu ikke få det til at fungere! Er der nogen som kan hjælpe mig her?
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
Kurser inden for grundlæggende programmering

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