Ik heb de resultaten nodig van een filter voor de antwoorden die mensen gegeven hebben. Dat houdt in dat als iemand aan alle antwoorden (reacties) van dat filter voldoet (bijvoorbeeld bij vraag 1 'ja' gezegd en bij vraag 3 'dat weet ik niet') dat ik dan zijn record wil hebben, en anders niet. Wat die persoon bij vraag 2 ingevuld heeft dat interesseert me in dit voorbeeld dan weer niet, het gaat er puur om of iemand een bepaald antwoord gegeven heeft.
Deze filters kunnen mensen opslaan (en nu niet ter zake doend, maar mensen kunnen achteraf ook nog de batches terug zien omdat ze direct weer opgeslagen worden), zodat ze ze vaker kunnen hergebruiken (en dat is zeker handig als je wilt bijhouden wie er al uitgefilterd zijn met die filter en dus niet nog een keer terug moet komen).
Nu heb ik de volgende SQL:
Natuurlijk levert dit iedereen op die op 1 van de n vragen het juiste antwoord heeft gegeven. Maar ik kan ook niet met een dubbele ontkenning gaan werken, want mensen die ik wel wil hebben, hebben ook antwoorden gegeven die niet in het filter zitten (zeg maar het antwoord op vraag 2, om het zelfde voorbeeld weer op te halen).
Kort gezegd:
Geef mij alle kontakten, die aan alle gewenste reacties (antwoorden) van het filter voldoen
Deze filters kunnen mensen opslaan (en nu niet ter zake doend, maar mensen kunnen achteraf ook nog de batches terug zien omdat ze direct weer opgeslagen worden), zodat ze ze vaker kunnen hergebruiken (en dat is zeker handig als je wilt bijhouden wie er al uitgefilterd zijn met die filter en dus niet nog een keer terug moet komen).
Nu heb ik de volgende SQL:
SQL:
1
2
3
4
5
6
7
8
| SELECT DISTINCT(k.id) FROM kontakt k JOIN reactie r ON k.id = r.kontakt_id WHERE r.antwoord_id IN ( SELECT fa.antwoord_id FROM filter_antwoord fa WHERE fa.filter_id = 1 ) |
Natuurlijk levert dit iedereen op die op 1 van de n vragen het juiste antwoord heeft gegeven. Maar ik kan ook niet met een dubbele ontkenning gaan werken, want mensen die ik wel wil hebben, hebben ook antwoorden gegeven die niet in het filter zitten (zeg maar het antwoord op vraag 2, om het zelfde voorbeeld weer op te halen).
Kort gezegd:
Geef mij alle kontakten, die aan alle gewenste reacties (antwoorden) van het filter voldoen
iOS developer