Hey,

ik heb hier thuis een reeks dvd's op mijn pc gebackupt.

Nu wil ik een database (php/sql) maken.
Dit is aardig gelukt en ben relatief te vreden (Ik kan films zoeken enz...)

Maar zit nu met 1 probleem. Een film zoeken op titel (in een tabel) is geen enkel probleem... Maar nu wil ik op genre kunnen zoeken, en liefst soms nog op 2 genres.

Mijn database ziet er als volgt uit:
3 tabellen: Films, genre, film_genre



Hoe moet ik nu bijvoorbeeld alle films selecteren die zowel tot het genre: Horror als tot het genre Actie behoren ZONDER dat ik sommige resultaten 2 keer krijg?
Ik weet niet meer juist wat ik destijds geprobeerd heb, maar toen kreeg ik alle "horror" films EN alle "actie" films...

Alvast bedankt
@Eddy,

Wat jij hier post kan nooit kloppen:

SELECT DISTINCT f.film_titel
FROM film AS f
LEFT JOIN film_genre AS fg
ON (fg.film_id = f.id)
LEFT JOIN genre AS g
ON (g.id = fg.genre_id)
WHERE g.genre LIKE '%oorlog'
OR g.genre LIKE '%actie%'
GROUP BY g.genre_id
ORDER BY f.film_titel DESC 

Je joined genre twee keer. Een keer als g en een keer als fg. vervolgens selecteer je de records die g.genre 'oorlog' hebben of die g.genre 'actie' hebben. Hiermee selecteer je DUS NIET de films die BEIDE hebben. Als je dat wilt doen moet je g.genre gelijk zetten aan 'oorlog' en (AND dus) fg.genre gelijk aan 'actie'.


Hoe moet ik nu bijvoorbeeld alle films selecteren die zowel tot het genre: Horror als tot het genre Actie behoren ZONDER dat ik sommige resultaten 2 keer krijg?

(bold is mijn toevoeging)

Reageren