Avatar billede el_cat Nybegynder
09. maj 2004 - 11:57 Der er 4 kommentarer og
2 løsninger

Where not exists

Hej Alle,

Jeg har følgende sql sætning, som vælger alle de medlemmer som findes på et hold. Nu vil jeg gerne have en sql sætning, som finder alle de medlemmer som ikke findes på holdet.

SELECT *
FROM Medlemmer, Medlemmer_Hold, Hold
WHERE Medlemmer.Medlemsid = Medlemmer_Hold.Medlemsid and Hold.id = Medlemmer_Hold.holdid
and Hold.id = 3
Avatar billede rednex Nybegynder
09. maj 2004 - 13:05 #1
Kan det samme medlem være på flere hold ad gangen ? Hvis ikke, så vil jeg foreslå at du skipper tabellen Medlemmer_Hold og istedet opretter et felt med Holdid i Medlemmer istedet. På den måde kan du hente medlemmer på et bestemt hold ved at bruge:

SELECT *
FROM Medlemmer
WHERE Holdid = 3

Hvis du også gerne vil have hold navnet eller lign. med kan du gøre sådan:
SELECT Medlemmer.*, Hold.Holdnavn
FROM Medlemmer
JOIN Hold ON (Hold.id = Medlemmer.Holdid)
WHERE Medlemmer.Holdid = 3

Du kan også finde medlemmer som ikke er på noget hold ved hjælp af:

SELECT *
FROM Medlemmer
WHERE Holdid = 0
Avatar billede el_cat Nybegynder
09. maj 2004 - 13:10 #2
Medlemmer kan være på flere hold af gangen. Derfor har vi brug for relationstabellen.
Avatar billede rednex Nybegynder
09. maj 2004 - 13:41 #3
Så skal du bruge:

SELECT *
FROM Medlemmer
LEFT JOIN Medlemmer_Hold ON ( Medlemmer.Medlemsid = Medlemmer_Hold.Medlemsid )
WHERE Medlemmer_Hold.Medlemsid IS NULL
Avatar billede el_cat Nybegynder
09. maj 2004 - 14:17 #4
Så mangler jeg bare at kunne vælge en specifik hold.
Avatar billede rednex Nybegynder
09. maj 2004 - 14:29 #5
Ahaah, på den facon :o) Jeg troede at du bare ville vide hvilke medlemmer der ikke var på noget hold :oP Så skal den se sådan her ud:

SELECT *
FROM Medlemmer
LEFT JOIN Medlemmer_Hold ON ( Medlemmer.Medlemsid = Medlemmer_Hold.Medlemsid AND Medlemmer_Hold.Holdid = 3 )
WHERE Medlemmer_Hold.Medlemsid IS NULL
Avatar billede el_cat Nybegynder
09. maj 2004 - 15:25 #6
Tak for hjælpen, det virker helt perfekt ;o)
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