联接返回重复的行

时间:2019-09-15 14:48:25

标签: postgresql

我正在使用Sakila数据库学习PostgreSQL。有一个称为actor的表,它具有一个this.jobs = response.data; // try changing to this.jobs = response.data.jobs; actor_idfirst_name。还有另一个表格,其中演员通过last_nameactor_id组合映射到电影。

我希望以下查询为每个演员返回一行,并为该演员提供film_id的最大值,但是我将获得多行而不是一行(该演员的film_id的最大值)。

film_id

感谢您的帮助,帮助您了解如何使用联接来实现此目的(我已经有了使用子查询来实现此目的的解决方案)。

PS:我敢肯定,SQL的初学者经常会问这个问题,但是我还没有看到一个可行的答案。

1 个答案:

答案 0 :(得分:0)

您必须从以下位置删除film_actor.film_id

GROUP BY film_actor.film_id, actor.first_name, actor.last_name

因为您只想按演员分组。
因此更改为:

GROUP BY actor.actor_id, actor.first_name, actor.last_name

我还添加了actor.actor_id,以防万一有两个同名演员。
并将ORDER BY子句更改为:

ORDER BY MAX(film_actor.film_id)