Si yo me creo una consulta que me agrupa diferentes tablas de mi modelo de datos la tengo disponible para todo tipo de consultas sobre esa relación.
Ejemplo, sin en Sakila creo una vista que una categorías, películas y actores la tengo disponible para usarla sin repetir joins:
create or replace view cat_film_actor as select category_id, name,film.*,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)
A partir de aquí puedo consultar datos de esta vista de una manera mucho más cómoda:
select * from cat_film_actor where name='Action' and first_name='PENELOPE'; select distinct name from cat_film_actor where actor_id=1; select distinct title from cat_film_actor where name='Action';