Avatar billede hermandsen Juniormester
16. april 2004 - 13:22 Der er 1 kommentar og
2 løsninger

Joine to tabeller sammen med en tredje

Hej Eksperter!!

Jeg har 4 tabeller.

1: En tabel med redskaber
2: En tabel med programmer
3: En tabel med sekvenser
4: En tabel med shows

Desuden har jeg nogle "sammenkoblere" mellem nogle af tabellerne:

Et program referer til flere redskaber.
En sekvens referer til flere programmer i en bestemt rækkefølge.
Et show referer til flere programmer og/eller sekvenser i bestemt rækkefølge.

Problemet er netop sidst nævnte!!

Jeg skal koble programmer og sekvenser sammen med show-tabellen.

Tabellen til at sætte de to sammen med den ene ser således ud:

foobar
    program_id  int
    sekvens_id  int
    show_id  int
    orden  int
    type  enum ('program','sekvens')

program_id, sekvens_id, show_id og orden er alle primary keys.

Hvordan join'er jeg de to tabeller med den tredje, så jeg får den rigtige rækkefølge, uden at skulla lave flere databasekald??

Er det muligt at undvære sekvens_id, og benytte program_id som denne, og så hente data fra den rigtige tabel, afhængtigt af om type er 'program' eller 'sekvens'??

Håber det var forståeligt! :)

//hermandsen
Avatar billede elv Nybegynder
16. april 2004 - 23:10 #1
Jeg mener at du kan joine på begge dele uden problemer, så får du bare null tilbage i de felter der ikke bliver brugt

select * from foobar f where showid = 3
inner join programmer p on p.programid = f.programid
inner join sekvenser s on s.sekvensid = f.sekvensid
order by orden asc

Ikke-testet osv..
MVH Emil
Avatar billede hermandsen Juniormester
27. juni 2004 - 00:23 #2
Emil, hvis du vil ha' lidt point så læg lige et svar... Jeg har snakket med en gut som viste mig hvordan...

Løsningen blev en anden, så jeg undgår den ene af de trælse tabeller!! :)
Avatar billede elv Nybegynder
07. juli 2004 - 18:24 #3
Deeeet er så i orden. Tak.
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