Avatar billede bernhof Nybegynder
07. februar 2004 - 19:17 Der er 21 kommentarer og
1 løsning

Access 2002 SQL: Join 3 tabeller?

Kunne godt tænke mig at vide, om det er muligt, i en SQL sætning, at JOIN'e 3 tabeller, eller gøre noget, som svarer til det?
Avatar billede trer Nybegynder
07. februar 2004 - 19:36 #1
ja - nemmste at beskrive er query i design view med SQL

select *
from tabel1 t1
inner join tabel2 t2 on t1.pk = t3.fk
inner join tabel3 t3 on t1.pk = t3.fk

Kolonner etc afhænger jo så af hvordan dine tabeller hænger sammen.
Avatar billede trer Nybegynder
07. februar 2004 - 19:36 #2
Ovenstående er naturligvis et svar :-)
Avatar billede bernhof Nybegynder
07. februar 2004 - 21:13 #3
Tak for dit svar. Jeg kan dog umiddelbart ikke få det til at virke. Jeg får følgende fejlmedd. (i ASP):

Syntax error (missing operator) in query expression 'tblSalg.salg_fabrikat = tblFabrikat.fab_id INNER JOIN tblType ON tblSalg.salg_type = tblType.type_id'.

... ved brug af sætningen ...

SELECT salg_id, fab_navn, type_navn
FROM tblSalg
INNER JOIN tblFabrikat ON tblSalg.salg_fabrikat = tblFabrikat.fab_id
INNER JOIN tblType ON tblSalg.salg_type = tblType.type_id
WHERE salg_vis = True
ORDER BY salg_dato DESC, type_navn, fab_navn
Avatar billede trer Nybegynder
07. februar 2004 - 21:23 #4
Har du enabled SQL92 syntaks i Access databasen?

Det gøres i menuen Funktioner | Indstilninger (Tools|Options) - fanen Tables/Queries ?
Avatar billede bernhof Nybegynder
07. februar 2004 - 21:34 #5
Nu har jeg, men den kommer stadig med samme fejl.
Avatar billede trer Nybegynder
07. februar 2004 - 22:13 #6
Hmm.. når man slår fejlen op i Access hjælp får man at vide, at det kan være kolonne/tabel navn der er skrevet forkert.
Avatar billede bernhof Nybegynder
08. februar 2004 - 00:47 #7
Hmm .. Hvis det er tilfældet plejer der at komme en anden fejlmedd.

Har kigget den virkelig grundigt igennem, og det er altså ikke tilfældet her. :(
Avatar billede bernhof Nybegynder
08. februar 2004 - 01:36 #8
Kan jeg under alle omstændigheder ikke lokke dig til at kigge forbi dette spørgsmål:
http://www.eksperten.dk/spm/462238

Jeg har nok lagt det i den forkerte kategori :/
Avatar billede trer Nybegynder
08. februar 2004 - 02:07 #9
Checkede lige syntaksen - der skulle ikke være fejl i den...

Hvad sker der hvis du skifter queryen fra sql mode til alm. design mode ?  Det burde kunne køre uden problemer
Avatar billede bernhof Nybegynder
08. februar 2004 - 13:38 #10
Muligvis, men jeg kalder query'en fra ASP vha. ADODB (ActiveX Data Objects 2.7), så det er her den skal virke - ikke bare i Access.
Avatar billede trer Nybegynder
08. februar 2004 - 14:00 #11
Hmm.. Prøv at sende din sql til klienten så du kan checke at den rent faktisk sender det du forventer - og at der er de korrekte mellemrum mellem de forskellige keywords / kolonnenavne.
Avatar billede bernhof Nybegynder
08. februar 2004 - 14:20 #12
Nu har jeg forsøgt at kalde Query'en i Access (altså uden om ASP) og jeg får samme fejl. Hvis jeg fjerner den ene INNER JOIN, virker det fint, men så snart jeg sætter den på igen, kommer den med den førnævnte fejl. Jeg har prøvet at kalde Query'en mens SQL92 var disabled og mens det var enabled. Samme resultat.
Avatar billede trer Nybegynder
08. februar 2004 - 14:40 #13
Vil du prøve at sende mdb filen til mig? Det er til trer.fjernmig@mail.dk - så vil jeg lige kigge på den.
Avatar billede bernhof Nybegynder
08. februar 2004 - 15:28 #14
Så får du en tom udgave af databasen, da databasen indeholder en masse personlige oplysninger om div. brugere osv. som jeg ikke må give ud.

Hvilken version af Access benytter du?
Avatar billede trer Nybegynder
08. februar 2004 - 15:50 #15
Access 2002 - tom udgave er fint, jeg skal jo kun kigge syntaks.
Avatar billede bernhof Nybegynder
08. februar 2004 - 16:03 #16
Ok, jeg har tastet forkert i titlen -- jeg bruger Access 2003, selvom det jo ikke burde have nogen betydning.

Jeg sender til dig...
Avatar billede bernhof Nybegynder
08. februar 2004 - 16:17 #17
Jeg har sendt dig en simplere udgave, som går ud på det samme.

Jeg har forsøgt mig med denne query, men den fejler:

SELECT bruger_navn, type_navn
FROM tblPost
INNER JOIN tblBruger ON tblPost.post_bruger = tblBruger.bruger_id
INNER JOIN tblPostType ON tblPost.post_type = tblPostType.type_id
ORDER BY type_navn
Avatar billede trer Nybegynder
08. februar 2004 - 19:09 #18
Ok, her er to løsninger.  SQL92 udgaven med parenteser og "gammel" sql syntaks

SQL92:
SELECT tblBruger.bruger_navn, tblPostType.type_navn
FROM tblPostType INNER JOIN (tblBruger INNER JOIN tblPost ON tblBruger.bruger_id = tblPost.post_bruger) ON tblPostType.type_id = tblPost.post_type
ORDER BY tblPostType.type_navn;

Pre-SQL92:
SELECT tblBruger.bruger_navn, tblPostType.type_navn
FROM tblPost, tblBruger, tblPostType
WHERE tblPost.post_bruger=tblBruger.bruger_id
AND tblPost.post_type=tblPostType.type_id
ORDER BY tblPostType.type_navn;
Avatar billede bernhof Nybegynder
08. februar 2004 - 23:12 #19
Det virker jo efter hensigten! Mange tak for hjælpen! Læg et svar :)
Avatar billede trer Nybegynder
08. februar 2004 - 23:33 #20
Der er et ovenfor :-)
Avatar billede bernhof Nybegynder
09. februar 2004 - 01:51 #21
Nå ja .. Heh, shit.
Avatar billede trer Nybegynder
09. februar 2004 - 09:34 #22
*G*
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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