Hey,
Ik heb hier een uur of twee geleden een topic gepost over de opbouw van mijn database, deze is geslaagd: het lukt me echter niet om de juiste gegevens middels een query terug te krijgen.
Ik heb nu dus bij de recensenten wat kenmerken en lievelingsgenre's aan hun naam gehangen. Dit heb ik zo gerealiseerd in mijn database:
De bedoeling is dat er nu een pagina komt waarop je kenmerken en genre's kan selecteren: vervolgens gaat hij de passende recensent zoeken. Ik dacht dit te doen door èèn query voor het selecteren van de recensenten die voldoen aan de genre's te intersecten met èèn andere die alle recensenten selecteert die passen bij de opgegeven kenmerken. Dan zou mijn query er dus zo uitgezien hebben ( het getal achter 'having n =', staat voor het aantal opgegeven begrippen waarop gezocht moet worden).
Deze query zou alle recensenten moeten selecteren die Jazz en Nu-metal als lievelingsgenre hebben en die Diskjockey zijn!:
Nu is het probleem dat MySql voor zover ik weet geen INTERSECT ondersteunt (waar ik ook pas 10s geleden achterkwam
, al dat werk voor niets). Heeft iemand ook maar enig idee hoe ik deze query anders zou kunnen bouwen!
Alvast bedankt en sorry mocht het niet te volgen zijn!
Ik heb hier een uur of twee geleden een topic gepost over de opbouw van mijn database, deze is geslaagd: het lukt me echter niet om de juiste gegevens middels een query terug te krijgen.
Ik heb nu dus bij de recensenten wat kenmerken en lievelingsgenre's aan hun naam gehangen. Dit heb ik zo gerealiseerd in mijn database:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| Recensent id recensent --------------------------------------------------------------- 1 Koen Poolman 2 Roel vd Ven genre2recensent recensent_id genre_id ------------------------------------- 1 1 1 2 2 3 genre id genre ------------------------------ 1 Jazz 2 Nu-metal 3 Pop kenmerk2recensent recensent_id kenmerk_id ------------------------------------- 1 3 2 2 2 1 Kenmerk id kenmerk ------------------------------ 1 Dood 2 Bekend 3 Diskjockey |
De bedoeling is dat er nu een pagina komt waarop je kenmerken en genre's kan selecteren: vervolgens gaat hij de passende recensent zoeken. Ik dacht dit te doen door èèn query voor het selecteren van de recensenten die voldoen aan de genre's te intersecten met èèn andere die alle recensenten selecteert die passen bij de opgegeven kenmerken. Dan zou mijn query er dus zo uitgezien hebben ( het getal achter 'having n =', staat voor het aantal opgegeven begrippen waarop gezocht moet worden).
Deze query zou alle recensenten moeten selecteren die Jazz en Nu-metal als lievelingsgenre hebben en die Diskjockey zijn!:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| SELECT recensent, count( * ) AS n FROM recensent AS r, genre2recensent AS g2r WHERE g2r.recensent_id = r.id AND ( g2r.genre_id = 1 OR g2r.genre_id = 2 ) GROUP BY r.id HAVING n = 2 INTERSECT SELECT recensent, count( * ) AS n FROM recensent AS r, kenmerk2recensent AS k2r WHERE k2r.recensent_id = r.id AND k2r.genre_id = 3 GROUP BY r.id HAVING n = 1 |
Nu is het probleem dat MySql voor zover ik weet geen INTERSECT ondersteunt (waar ik ook pas 10s geleden achterkwam
Alvast bedankt en sorry mocht het niet te volgen zijn!