演员/电影查询有很多变化。我无法找到正确的方法,当试图从非组列中选择: 我有3个表格电影(film_id,title),actor(actor_id,first_name,last_name),film_actor(actor_id,film_id)。 所以,我需要找到2名演员,其中一起玩最多和显示输出actor1_last_name,actor2_last_name,film_title的前5部这样的电影。 我在做什么是第一,演员的计数外观:sql select演员一起玩
select r1.actor_id as actor_a, r2.actor_id as actor_b,
count(r1.film_id) as casted_together
from film_actor r1 inner join film_actor r2 on r1.film_id = r2.film_id
and r1.actor_id > r2.actor_id
group by r1.actor_id, r2.actor_id
order by casted_together desc
这将返回我的表所示
actor_a | actor_b| casted_together
Name Name 7
... ... 6
但是,一旦我尝试添加film.title选择,它说我可以”如果不在组合部分((select title from film where film_id = r1.film_id) as film_title
),请使用它。 subquery uses ungrouped column "r1.film_id" from outer query
如何使用上述分组的结果并添加一些外部列?在我的情况下,它是film.title
。
所需的输出:
actor_a_last_name | actor_b_last_name| film_title
Name Name Title
... ... ...
说,乔治·克鲁尼和面包皮特拥有最多部电影一起(9) 而测试结果将显示前5个9的线
actor_a_last_name | actor_b_last_name| film_title
Clooney Pitt Film 1
Clooney Pitt Film 2
... ... ...
你能分享所需的输出 – Shuddh