Avatar billede Brian Moos Lindberg Praktikant
24. november 2004 - 19:07 Der er 5 kommentarer og
1 løsning

Vis data fra tabel 1 hvis de ikke er i tabel 2

Hej.
Jeg har nu bøvlet med det her i et par dage og jeg kan ikke finde nogen løsning. Jeg håber nu at der er nogen her der kan hjælpe mig.

Jeg er i gang med at lave en hjemmeside for en arrangerende musikforening. Jeg har en database med en masse tabeller, men de to der er interessante i denne sammenhæng ser således ud:

tabel1 kunstnere
kunstner_id - auto nummerering
kunstner_navn - varchar(60)

tabel2 arrangementer_kunstnere
kunstnere_kunstner_id - int
arrangementer_arr_id - int

tabellerne kunne indeholde følgende data:

1)kunstnere
kunstner_id | kunstner_navn
1          | Thomas Helmig
2          | Peter Belli
3          | Queen
4          | Odsherred Mandekor
.
.

2)arrangementer_kunstnere
arrangementer_arr_id | kunstnere_kunstner_id
1                    | 1
1                    | 2
2                    | 3
3                    | 4
3                    | 1
.
.

Disse data læses således at ved arrangement 1 spiller både Thomas Helmig og Peter Belli, ved arrangement 2 spiller Queen og ved arrangement 3 spiller Odsherred Mandekor samt Thomas Helmig igen.

Det jeg nu gerne vil have er en SQL-forespørgsel som kan give mig navnene (kunstner_navn) på alle de kunstnere som ikke spiller til et givent arrangement (arrangementer_arr_id) - altså hele listen over kunstnere minus dem der er knyttet til et bestemt arrangement.

Hvordan gør jeg dette ?

På forhånd tak for hjælpen.
Avatar billede arne_v Ekspert
24. november 2004 - 19:34 #1
Prøv:

SELECT kunstnere.kunstner_navn
FROM kunstnere LEFT JOIN arrangementer_kunstnere ON kunstnere.kunstner_id = arrangementer_kunstnere.kunstnere_kunstner_id AND arrangementer_kunstnere.arrangementer_arr_id = X
WHERE arrangementer_kunstnere.kunstnere_kunstner_id IS NULL
Avatar billede arne_v Ekspert
24. november 2004 - 19:35 #2
Med MySQL 4.1 burde du også kunne:

SELECT kunstner_navn
FROM kunstnere
WHERE kunstner_id NOT IN (SELECT  kunstnere_kunstner_id FROM arrangementer_kunstnere WHERE arrangementer_arr_id = X)
Avatar billede Brian Moos Lindberg Praktikant
25. november 2004 - 16:54 #3
Takker... Det virker præcist som det skal... Giver du lige et svar også...?

/Brian.
Avatar billede arne_v Ekspert
25. november 2004 - 17:55 #4
kommer her
Avatar billede arne_v Ekspert
12. december 2004 - 19:46 #5
så mangler du bare lige at acceptere svaret
Avatar billede Brian Moos Lindberg Praktikant
25. maj 2005 - 00:56 #6
et forsinket TAK.
/Brian.
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