Avatar billede loevstroem Nybegynder
19. november 2008 - 21:45 Der er 2 kommentarer og
1 løsning

Hjælp til korrekt query forespørgsel

Kære Eksperter.

Jeg har en række gruppemedlemmer der er meldt ind i forskellige grupper, heraf er brugerne knyttet på kryds og tværs af venskaber.

I mit eksempel har jeg prøvet at få 5 random grupper som ens venner er medlem af, men der skal dog ikke returneres hvis man også selv er medlem af gruppen. Dette har jeg prøvet at undgå med: AND groupmembers.member_id != ".$_SESSION['id']."

- Dette virker dog ikke, er der nogen der har nogle bud?

SELECT groups.id, groups.name, groups.year, groups.type, groups.description, groups.school FROM userfriendships INNER JOIN groupmembers ON userfriendships.friend_id = groupmembers.member_id AND groupmembers.member_id != ".$_SESSION['id']." INNER JOIN groups ON groups.id = groupmembers.group_id AND groups.type !='2' WHERE userfriendships.user_id = ".$_SESSION['id']." GROUP BY groups.id ORDER BY RAND() LIMIT 0,5


På forhånd tak
Avatar billede razmuzdk Nybegynder
20. november 2008 - 18:05 #1
Tror du skal have fat i en sub query.

SELECT
g.dine_kolonner
FROM groups AS g
WHERE g.id IN(
  SELECT gm.group_id
  FROM userfriendships AS u
  JOIN groupmembers AS gm ON gm.member_id u.friend_id
  WHERE userfriendships.user_id = ".$_SESSION['id']."
) AND g.id NOT IN(
  /* Her select du alle group-id'er som man SELV er medlem af */
)
Avatar billede loevstroem Nybegynder
20. november 2008 - 22:47 #2
Tak for hjælpen, smider du et svar? .- )
Avatar billede razmuzdk Nybegynder
20. november 2008 - 22:57 #3
Yep
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