16. oktober 2007 - 11:36Der er
13 kommentarer og 1 løsning
Select med flere kriterier
Hej eksperter..
Jeg har lidt problemer med et select statement der skal returnere rows hvor flere kriterier er opfyldt.
Tabellen er ganskel simpel: ID;MedlemsID;InteresseID
Samme medlem optræder altså flere gange hvis flere interesser er valgt.
Jeg ønsker nu at kunne definere fx 3 interesser og få en liste over de medlemmer som har valgt alle 3 interesser (der må gerne være valgt flere, men de 3 specificerede skal alle være valgt)
Det er desværre ikke så simpelt. Ovenstående returnere alle medlemmer som har angivet blot en eller flere af de specificerede interesser. Jeg skal kun have dem der har alle 3 interesser (eller flere)
SELECT medlemsID FROM dinTabel WHERE medlemsID IN (SELECT medlemsID FROM dinTabel WHERE InteresseID = 7) AND medlemsID IN (SELECT medlemsID FROM dinTabel WHERE InteresseID = 9) AND medlemsID IN (SELECT medlemsID FROM dinTabel WHERE InteresseID = 13)
Jeg tænker på om man måske kunne vidreudvikle på denne:
select medlemsid, count(medlemsid) as antal from medlemmer_interesser where interesseID in (40,41,42) group by medlemsid
Antal indeholder jo nu hvor mange interesser det enkelte medlem opfylder. Men jeg kan ikke umiddelbart flytte det ned som en del af where sætningen. (Altså where count(medlemsid) = 3)
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.