Avatar billede Slettet bruger
10. april 2010 - 19:28 Der er 1 kommentar og
1 løsning

Hjælp til JOIN til fodboldsystem

Hej eksperter.

Jeg er ikke helt skarp i joins - så jeg håber, I kan hjælpe. Det drejer sig om et hjælpeprodukt til et mindre fodboldsystem, der kan vise en række fremtidige kampe. Jeg har 2 (faktisk 3) entiteter. Her er de to første:

elms_teams
-------------------
* team_id
teamshort (string, f.eks. Manchester U)
teamlong (string, f.eks. Manchester United)


elms_matches
-------------------
* matchid
hometeamfk (int, fk til team_id)
awayteamfk (int, fk til team_id)
judgefk (int, fk til judge_id... er ikke relevant lige nu)
matchdate (date)
homescore (int)
awayscore (int)


OK, vi har et eksempel: Real Madrid spiller mod FC Barcelona. Posten ser sådan ud:
http://81.7.144.103/transfer/matchentitet.gif

Indholdet af "teams" ser sådan ud:
http://81.7.144.103/transfer/teamsentitet.gif

Nu vil jeg gerne ha' hentet kampen ud - til formålet bruger vi bare en simpel select... MEN: jeg ønsker at holdnavnene skrives - og ikke foreign keys. Derfor ville jeg umiddelbart vælge at køre en join jf. http://www.youtube.com/watch?v=oWHO4lJlX54&feature=related - Her er første query:

SELECT  elms_matches.matchid,
        elms_matches.hometeamfk,
        elms_matches.awayteamfk,
        elms_matches.judgefk,
        elms_matches.matchdate,
        elms_matches.homescore,
        elms_matches.awayscore
FROM    elms_matches
WHERE    elms_matches.matchdate = "2010-04-11"

Har I et bud på, hvordan min nye query vil se ud?
Avatar billede amite Mester
10. april 2010 - 19:46 #1
Prøv med...

SELECT em.matchid,
        em.judgefk,
        em.matchdate,
        em.homescore,
        em.awayscore,
    thome.teamlong as hometeam,
    taway.teamlong as awayteam
FROM elms_matches em
INNER JOIN teams thome ON em.hometeamfk = thome.teamid
INNER JOIN teams taway ON em.awayteamfk = taway.teamid
WHERE em.matchdate = "2010-04-11"
Avatar billede Slettet bruger
10. april 2010 - 20:06 #2
Ahr, men det er verdensklasse!
Jeg har udbygget den, så den nu også henter dommernavnet fra en tredje entitet.

Hermed velfortjente 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
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