首页 > 数据库 > mysql教程 > 如何在 SQL 表中连接每部电影的演员?

如何在 SQL 表中连接每部电影的演员?

Mary-Kate Olsen
发布: 2025-01-15 06:27:43
原创
344 人浏览过

How to Concatenate Actors for Each Movie in a SQL Table?

在 SQL 表中组合每部电影的演员名称

想象一个包含“电影”和“演员”列的表格。 任务是检索电影及其相应演员的列表,并将每部电影的所有演员组合成一个字符串。

使用string_agg()的解决方案:

最有效的方法是使用 string_agg() 函数(在 PostgreSQL 9.0 及更高版本中可用):

<code class="language-sql">SELECT movie, string_agg(actor, ', ') AS actor_list
FROM table_name
GROUP BY movie;</code>
登录后复制

string_agg() 连接每部电影的演员姓名,并用逗号分隔。 GROUP BY movie 确保每部电影一行。

旧版 PostgreSQL 版本(9.0 之前)的替代方案:

对于较旧的 PostgreSQL 版本,请使用 array_agg()array_to_string():

<code class="language-sql">SELECT movie, array_to_string(array_agg(actor ORDER BY actor), ', ') AS actor_list
FROM table_name
GROUP BY movie;</code>
登录后复制

这会将 actor 聚合到一个数组中,然后将其转换为逗号分隔的字符串。 ORDER BY actor 子句按每部电影列表中的字母顺序对演员进行排序。

自定义演员列表顺序:

要控制每个列表中演员的顺序(例如,按计费顺序),请在 ORDER BYstring_agg() 内添加 array_agg()

<code class="language-sql">SELECT movie, string_agg(actor, ', ' ORDER BY actor) AS actor_list  --Alphabetical order
FROM table_name
GROUP BY movie;</code>
登录后复制

这种方法简化了电影与演员关系的呈现,有利于数据分析和展示。

以上是如何在 SQL 表中连接每部电影的演员?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板