Avatar billede and_moe Nybegynder
17. december 2003 - 18:44 Der er 3 kommentarer og
1 løsning

Udformning af (inner join?) forespørgsel.

Jeg har 2 databaser. "klasser" der indeholder kolonnerne id og klasse samt "hold" der har kolonnerne id, hold, holdid og klasseid. Nu skal jeg lave en forespørgsel der viser hvilke hold et medlem af en given klasse kan have. Jeg prøver at opstille et eksempel:
Brugeren indtaster at han går i fx. 2x. Lad os sige at 2x har id 17. Jeg skal derfor have et udtræk fra databasen hold, hvor 17 optræder i kolonnen klasseid. Det jeg vil have ud er hold og holdid. Det skal nævnes at der står flere tal i samme celle i klasseid, de er adskilt af mellemrum ex: 2 10 17 25. Håber det er til at forstå.

Jeg har prøvet at flikke noget inner join sammen, men kan ikke få det til at virke:

SELECT hold.hold, hold.holdid FROM klasser, hold WHERE klasser.klasse = 17 AND klasser.id LIKE hold.klasseid

Så nu er det op til jer...
Avatar billede arne_v Ekspert
17. december 2003 - 18:51 #1
Den er svær.

Fordi SQL baserer sig på at at felter kun indeholder atomiske værdier.
Avatar billede arne_v Ekspert
17. december 2003 - 18:53 #2
Du kunne prøve med:

hold.klasseid LIKE CONCAT('%',klasser.id,'%')

men den vil matche forkert i nogle tilfælde.
Avatar billede and_moe Nybegynder
17. december 2003 - 18:58 #3
Hovsa... det jeg havde testet med var selvfølgelig:

SELECT hold.hold, hold.holdid FROM klasser, hold WHERE klasser.klasse = '2x' AND klasser.id LIKE hold.klasseid

Men det ser ud til at virke! Mange tak!
Avatar billede arne_v Ekspert
17. december 2003 - 19:23 #4
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