Categorías, películas y actores:
create view pelistotal as select category_id, category.name nombrecategoria, film_id,title,actor_id, first_name,last_name from category join film_category using (category_id) join film using (film_id) join film_actor using (film_id) join actor using (actor_id)
La usamos como una tabla normal:
select name,count(actor_id) total from pelistotal group by category_id
select * from actor where actor_id not in ( SELECT actor_id FROM pelistotal where name='action');
Como hacer una consulta del tipo actores que no han trabajado en películas de acción si usar subconsultas. Primero creamos la vista en positivo:
create view actores_accion as select actor_id,first_name,last_name from category join film_category using (category_id) join film using (film_id) join film_actor using (film_id) join actor using (actor_id) where name='action'
Y después hacemos un left join y buscamos los nulos:
SELECT * FROM actor left join actores_accion using(actor_id) where actores_accion.first_name is null