tbl_group: +----+---------+ | id | name | +----+---------+ | 1 | Group 1 | | 2 | Group 2 | | 3 | Group 3 | +----+---------+
Lige for at være på den sikre side, så er der altså en mange->mange forbindelse mellem brugere og grupper.
Og så spørgsmålet: - Brugeren med id=1 er medlem af grupperne med id=1 og id=3 - hvordan laver jeg en sætning der giver mig de grupper som brugeren IKKE er medlem af?
select tbl_user.username,tbl_group.name from tbl_user,tbl_userGroup,tbl_group WHERE tbl_userGroup.userid != tbl_user.id AND tbl_userGroup.groupid = tbl_group.id;
Det giver mig de grupper som brugeren ER medlem af? Det er nemt nok, det jeg ikke kan regne ud er hvordan man laver en der giver mig de grupper som brugeren IKKE er medlem af (uafhængigt af om gruppen har medlemmer i forvejen).
jeg kan ikke lige finde ud af det .. ;) men jeg kan da finde de grupper der ikke er nogen i
SELECT tbl_user.username, tbl_group.name FROM tbl_group, tbl_user WHERE tbl_group.id NOT IN ( SELECT groupid FROM tbl_userGroup )
hvis du skal have det hele i en query kunne jeg forestille mig du skal have fat i SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id WHERE table2.id IS NULL;
men jeg kan ikke få det til at spille .. måske kan du.
fizz>> Stop med at spamme med ligegyldige svar når du ikke engang har deltaget i spørgsmålet. Har du ikke noget fornuftigt at bidrage med så undlad at svare/kommentere.
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.