Ik zit voor het vak database ontwerp met een klein probleempje. We moeten een aantal opgaven maken, maar 2 opgaven lukken niet helemaal. De database is trouwens PostgreSQL.
Eerst even een overzichtje van de tabellen:

Nu is de opgave als volgt:
4. Welke script writers hebben geacteerd in al hun films?
Hiervoor hadden wij de volgende query bedacht:
maar hiermee selecteren we ook script writers die in een paar van hun films hebben geacteerd, en niet in alle. Hoe moet ik deze query aanpassen om het toch werkend te krijgen?
En dan nog een vraagje:
Hoe kan ik die LEFT JOIN in bovenstaande query vervangen, want de begeleiders vinden dat we geen LEFT JOIN moeten gebruiken omdat dat niet in de stof werd uitgelegd.
Hopelijk kan iemand met hiermee helpen.
Eerst even een overzichtje van de tabellen:

Nu is de opgave als volgt:
4. Welke script writers hebben geacteerd in al hun films?
Hiervoor hadden wij de volgende query bedacht:
SQL:
1
2
3
4
5
| SELECT DISTINCT p.name FROM Persons p,Writers w, Actors a WHERE p.person_id = w.person_id AND w.movie_id = a.movie_id AND a.person_id = w.person_id; |
maar hiermee selecteren we ook script writers die in een paar van hun films hebben geacteerd, en niet in alle. Hoe moet ik deze query aanpassen om het toch werkend te krijgen?
En dan nog een vraagje:
SQL:
1
2
3
4
5
6
7
8
9
10
| SELECT p.name FROM (SELECT d.person_id,min(m.year) FROM Directors d, Movies m WHERE m.movie_id = d.movie_id GROUP BY d.person_id HAVING COUNT(*)>1 ORDER BY COUNT(*) desc) AS e LEFT JOIN persons p ON p.person_id=e.person_id; |
Hoe kan ik die LEFT JOIN in bovenstaande query vervangen, want de begeleiders vinden dat we geen LEFT JOIN moeten gebruiken omdat dat niet in de stof werd uitgelegd.
Hopelijk kan iemand met hiermee helpen.