Avatar billede henrywood Nybegynder
17. oktober 2002 - 14:32 Der er 5 kommentarer og
1 løsning

JOIN AF TRE TABELLER ?

Jeg har tre tabeller med disse nøgler

Tabel 1: Hovedkategori(Indeholder alle hovedkategorier)
PK HKID
Navn
...

Tabel 2: HK_FD_LINK    (Indeholder en post for hvert firma der står i hovedkategorien HKID fra Hovedkategori)

FK HKID                (Hovedkategori ID)
FK FID                (FirmaID fra tabel 3)

Tabel 3: Firmadata
PK FID                FirmaID

Bruger MySQL

FK = Foreign key
PK = primær nøgle

Og nu spørgsmålet:

Hvad ser en SELECT ud som viser alle firmaer, der står i en bestemt hovedkategori f.eks hovedkategori med HKID=1 i Hovedkategori ?
Avatar billede neteffect Nybegynder
17. oktober 2002 - 15:00 #1
SELECT Firmadata.Firmanavn FROM
Firmadata INNER JOIN (Hovedkategori INNER JOIN HK_FD_LINK ON Hovedkategori.HKID = HK_FD_LINK) ON Firmadata.FID = HK_FD_LINK.FID
WHERE Hovedkategori.HKID = 1
Avatar billede neteffect Nybegynder
17. oktober 2002 - 15:01 #2
Strengt taget er der i det konkrete eksempel ingen grund til at join'e tabellen "Hovedkategori" med, kun hvis du skal bruge et felt fra den, fx kategoriens navn.
Avatar billede henrywood Nybegynder
17. oktober 2002 - 15:27 #3
Det skal jeg nemlig (Bruge hovedkategoriens navn)

Hvad hvis jeg vil vise alle firmaer der står i underkategorien 1 som hører til hovedkategori 1 ?

Der er en tilsvarende link tabel UK_FD_LINK med UKID og HKID felter

eller hvis jeg vil vise alle firmaer der står i en uspecificeret underkategori til hovedkategori 1 ?

således at følgende kan udskrives

Hovedkategori: Minhovedkategori (Kategorien med HKID=1)

  Underkategori 1: Underkategoriens navn
  Firmanavnnavn etc.
 
  Underkategori 2: Underkategori2
  Firmanavn 2
 
etc.
Avatar billede neteffect Nybegynder
17. oktober 2002 - 15:38 #4
På dette tidspunkt ville jeg trække min Access querybuilder og lave queryen dér.

Det bliver sikkert vanskeligt eller umuligt med en query at lave linien med "Hovedkategori:" samtidig med at du gerne vil have listet underkategorierne. Overvej at dele op i to queries, den første til at trække hovedkategorierne, den anden query til underkategorierne i et programmeret loop.
Avatar billede henrywood Nybegynder
17. oktober 2002 - 15:44 #5
OK, men hvad med første spørgsmål - Det kan vel lade sig gøre eller ?

Hvad hvis jeg vil vise alle firmaer der står i underkategorien 1 som hører til hovedkategori 1 ?

Der er en tilsvarende link tabel UK_FD_LINK med UKID og HKID felter
Avatar billede henrywood Nybegynder
17. oktober 2002 - 16:35 #6
OK
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
Computerworld tilbyder specialiserede kurser i database-management

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