Sql 显示结果,共有三个不同的值,下一个结果至少是两倍大

Sql 显示结果,共有三个不同的值,下一个结果至少是两倍大,sql,postgresql,join,relational-division,Sql,Postgresql,Join,Relational Division,所以我有以下问题: 数据库是MySQL中的Sakila示例数据库,但我使用的是postgreSQL。 我必须展示至少有不同演员的电影: select f1.film_id, f1.title from film f1 join film_actor fa1 on f1.film_id = fa1.film_id join film_actor fa2 on f1.film_id = fa2.film_id join film_actor fa3 on f1.film_id = fa3.film_

所以我有以下问题: 数据库是MySQL中的Sakila示例数据库,但我使用的是postgreSQL。 我必须展示至少有不同演员的电影:

select f1.film_id, f1.title
from film f1
join film_actor fa1 on f1.film_id = fa1.film_id
join film_actor fa2 on f1.film_id = fa2.film_id
join film_actor fa3 on f1.film_id = fa3.film_id
where ((fa1.actor_id <> fa2.actor_id) and (fa2.actor_id <> fa3.actor_id) and  (fa1.actor_id <> fa3.actor_id))
但我还是一个初学者,不知道该怎么做 两者都是独立的条件。 结果将是:

film id title
6 AGENT TRUMAN
9 ALABAMA DEVIL
10 ALADDIN CALENDAR
... 

它正好有101行

我认为这是一个聚合。计算两部电影中共同演员的数量是一个很好的起点:

select fa1.film_id, fa2.film_id, count(*) as num_actors_in_common
from film_actor fa1 join
     film_actor fa2
     on fa2.actor_id = fa1.actor_id 
group by fa1.film_id, fa2.film_id;
select fa1.film_id, fa2.film_id, count(*) as num_actors_in_common
from film_actor fa1 join
     film_actor fa2
     on fa2.actor_id = fa1.actor_id 
group by fa1.film_id, fa2.film_id;