如何从mysql sakila数据库获得以下结果集:所有电影的电影名称和该电影中每个演员的名称的列表



我写了下面的查询:

select film_id, actor_id
from sakila.film_actor
where film_id IN (
select film_id from sakila.film
)

返回

film_id actor_id
1       1
1       10
1       20
....
2      19
2     85

但是我还想在这个结果集中包括电影的名字和演员的名字。

电影名称在电影表中,演员的姓和名在演员表中。

表的结构如下:

Table         Columns
actor          actor_id, first name, last name
film           film_id, title
film_actor     actor_id, film_id(foreign keys to film and actor table)

我尝试了以下查询:

select ac.actor_id, ac.first_name, ac.last_name, fm.title  from sakila.film_actor as fa  inner join sakila.actor ac on fa.actor_id = ac.actor_id   inner join sakila.film fm on fa.film_id = fm.film_id;

但是这个返回的是每个演员的所有电影列表,而我希望反过来。每部电影的所有演员

使用内部连接

select f.film_id, a.actor_id, f.film_name, a.first_name, a.last_name
from sakila.film_actor a 
inner join sakila.film f
on a.film_id = f.film_id
当然,您必须使用模式中的实际字段名。(我猜是film_name,first_namelast_name)

相关内容

  • 没有找到相关文章

最新更新