Il y a beaucoup de variations de requêtes acteur/films. Et je ne peux pas trouver l'approche correcte, en essayant de choisir des colonnes non-groupe: J'ai 3 tables film (film_id, titre), acteur (acteur, prénom, nom de famille), film_actor (acteur, film_id). Donc, j'ai besoin de trouver 2 acteurs, qui jouent ensemble le plus et montrent la sortie comme actor1_last_name, actor2_last_name, film_title pour les 5 premiers films. Ce que je fais est d'abord, l'apparence de comptage des acteurs:sql sélectionner les acteurs jouent ensemble
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
Cela me retourne table comme
actor_a | actor_b| casted_together
Name Name 7
... ... 6
Mais une fois que j'essaie d'ajouter film.title pour le sélectionner dit que je peux » t l'utiliser dans le cas où il n'est pas dans la section groupe ((select title from film where film_id = r1.film_id) as film_title
). Comment puis-je utiliser les résultats du regroupement ci-dessus et y ajouter une colonne externe? Dans mon cas, c'est film.title
.
sortie souhaitée:
actor_a_last_name | actor_b_last_name| film_title
Name Name Title
... ... ...
Say, George Clooney et Pain Pitt ont le plus grand nombre de films ensemble (9) et le résultat devrait montrer les premiers 5 9 lignes
actor_a_last_name | actor_b_last_name| film_title
Clooney Pitt Film 1
Clooney Pitt Film 2
... ... ...
Pouvez-vous partager la sortie désirée – Shuddh