Ik heb de volgende tabel:
Daarbij wil ik een query maken waarbij veldid = 1, typewaardeid = 1, waarde = 5 en waarde = 2. de records van objectid 1 en 3 getoond worden. object 2 kent wel 2 maar geen 5. Die moet in dit geval niet meegenomen worden.
De volgende query heb ik bedacht:
SELECT COUNT(`objectid`),`objectid` FROM `values` WHERE ((`veldid` = 1 AND `typewaardeid` = 1) AND `waarde` = 2 OR `waarde` = 700) GROUP BY `objectid` HAVING count = 2
Met deze query krijg ik uit bovenstaande tabel de juiste objectid's, als er echter een record zou zijn waarbij waarde = 2, 2x zou voorkomen (in theorie mogelijk), dan wordt die ook meegenomen. Al met al lijkt me de query zeer omslachtig en werkt die niet ideaal.
Het liefst zou ik een query willen die (ongeveer) als volgt werkt:
SELECT * FROM `values` WHERE ((`veldid` = 1 AND `typewaardeid` = 1) AND `waarde` = 2 AND `waarde` = 700)
Op die wijze kan ik makkelijk aan de query andere combinaties van veldid, typewaardeid en waarde meegeven.
Ik heb de faq bekijken. Volgens mij staat daar niet in wat ik zoek (voor zover ik het begreep).
Daarnaast heb ik gezocht op HAVING wat volgens mij ook geen oplossing kan bieden. Verder heb ik op algemene dingen gezocht zoals mysql where inside group by.
Is er een makkelijke oplossing?
autoid | objectid | veldid | typewaardeid | waarde |
1 | 1 | 1 | 1 | 5 |
2 | 1 | 1 | 1 | 2 |
3 | 2 | 1 | 1 | 2 |
4 | 3 | 1 | 1 | 2 |
5 | 3 | 1 | 1 | 5 |
Daarbij wil ik een query maken waarbij veldid = 1, typewaardeid = 1, waarde = 5 en waarde = 2. de records van objectid 1 en 3 getoond worden. object 2 kent wel 2 maar geen 5. Die moet in dit geval niet meegenomen worden.
De volgende query heb ik bedacht:
SELECT COUNT(`objectid`),`objectid` FROM `values` WHERE ((`veldid` = 1 AND `typewaardeid` = 1) AND `waarde` = 2 OR `waarde` = 700) GROUP BY `objectid` HAVING count = 2
Met deze query krijg ik uit bovenstaande tabel de juiste objectid's, als er echter een record zou zijn waarbij waarde = 2, 2x zou voorkomen (in theorie mogelijk), dan wordt die ook meegenomen. Al met al lijkt me de query zeer omslachtig en werkt die niet ideaal.
Het liefst zou ik een query willen die (ongeveer) als volgt werkt:
SELECT * FROM `values` WHERE ((`veldid` = 1 AND `typewaardeid` = 1) AND `waarde` = 2 AND `waarde` = 700)
Op die wijze kan ik makkelijk aan de query andere combinaties van veldid, typewaardeid en waarde meegeven.
Ik heb de faq bekijken. Volgens mij staat daar niet in wat ik zoek (voor zover ik het begreep).
Daarnaast heb ik gezocht op HAVING wat volgens mij ook geen oplossing kan bieden. Verder heb ik op algemene dingen gezocht zoals mysql where inside group by.
Is er een makkelijke oplossing?