提问者:小点点

MySQL Sakila数据库的简单查询


我有几年没写SQL查询了,有点生疏。我正在尝试编写一个查询,该查询将根据给定的演员姓名选择所有影片。因此,给出名称“Sandra”,我想选择film表中的影片,该影片在actor表的first_name或last_name中有“Sandra”。有一个film_actor表将这两个表链接起来,但我不知道如何正确地实现它。我得到的最接近的是select*FROM film f INNER JOIN film_actor fa ON fa.actor_id=a.actor_id WHERE a.first_name LIKE“%sandra%”;,它返回演员和影片的INNER JOIN表。这个结果还有一个film_id字段,我想我要利用这个字段来选择film表中的所有影片。


共1个答案

匿名用户

我想这就是你想要的。

SELECT --- generally doing select * from is a bad practice
    f.films,
    a.first_name,
    a.last_name
FROM films f
JOIN film_actor fa ON fa.film_id = f.id --- JOIN defaults to INNER JOIN -- the film_actor table im assuming has an actor id and a film id to join off of
JOIN actor a ON a.id = fa.actor_id
WHERE a.last_name LIKE"%sandra%" OR a.first_name LIKE"%sandra%" --- if you want the first_name to only match "sandra" then just do = "sandra" instead of LIKE "%sandra%"