内部连接2个表到另一个表

时间:2018-02-21 01:04:06

标签: sql

SELECT film.title, actor.last_name
FROM actor, film
INNER JOIN film_actor ON film.film_id = film_actor.film_id
    AND actor_id = film_actor.actor_id

这是我当前拥有的代码,我使用sakila测试数据库,基本上我希望显示电影标题和演员的姓氏,但它不起作用。 film_actor表包含哪个actor在哪部电影中执行的ID,所以我想将两个id组合到那里并显示它。我正在阅读的这本书没有解释如何将两个表合并为另一个表。我知道电影专栏会与每个演员重复,但现在没关系,我希望先解决这个问题

1 个答案:

答案 0 :(得分:1)

每个联接需要两个单独的ON子句:

SELECT film.title, actor.last_name
FROM actor
INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id
INNER JOIN film ON film.film_id = film_actor.film_id

或者不使用JOIN的替代语法:

SELECT film.title, actor.last_name
FROM actor, film, film_actor
WHERE film.film_id = film_actor.film_id AND actor.actor_id = film_actor.actor_id