09. maj 2004 - 11:57Der 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
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:
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
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.