Вам на самом деле не нужна таблица film
для чего-либо в запросе, так что вы можете ее пропустить. Также следует помнить, что актеры могут играть несколько ролей в одном фильме и, таким образом, могут иметь несколько записей на фильм в таблице filmparticipation
. Чтобы поймать это, используйте подзапрос с DISTINCT
.
SELECT lastname, firstname, COUNT(*) AS films
FROM (SELECT DISTINCT p.lastname, p.firstname, f.filmid
FROM person p, filmparticipation f
WHERE p.personid = f.personid AND f.parttype = 'cast') p
GROUP BY lastname, firstname
HAVING films >= 50;