如何在MySQL中返回结果列表,WHERE只返回一个

时间:2014-02-25 15:39:37

标签: mysql sql greatest-n-per-group

我正在尝试返回演员参与的电影列表。第二个语句给出了几个结果,但是当我运行最后一个语句时,只显示了第一个命中。这就像最后一个变量只搜索“first-match”。

显然我做错了,我不确定用什么搜索词来找到解决方案(因为我相信这个问题已经好几次回答了)。

SELECT @id := actor_id FROM sakila.actor WHERE first_name = 'Ed' and last_name = 'Chase';
SELECT @film :=film_id FROM sakila.film_actor WHERE actor_id = @id;
SELECT title FROM sakila.film WHERE film_id = @film;

Second statement results Third statement returns

1 个答案:

答案 0 :(得分:1)

你需要做类似的事情:

select title from sakila.film f 
join sakila.film_actor fa on fa.film_id = f.film_id
where fa.actor_id = @id

这会将最后两个查询合并为一个,并且在我看来比你的方式或使用子查询更好