Maison > base de données > tutoriel mysql > Comment concaténer des acteurs pour chaque film dans une table SQL ?

Comment concaténer des acteurs pour chaque film dans une table SQL ?

Mary-Kate Olsen
Libérer: 2025-01-15 06:27:43
original
344 Les gens l'ont consulté

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

Combinaison des noms d'acteurs pour chaque film dans une table SQL

Imaginez un tableau avec des colonnes "Film" et "Acteur". La tâche consiste à récupérer une liste de films et de leurs acteurs correspondants, avec tous les acteurs de chaque film combinés en une seule chaîne.

Solution utilisant string_agg() :

La méthode la plus efficace utilise la fonction string_agg() (disponible dans PostgreSQL 9.0 et versions ultérieures) :

<code class="language-sql">SELECT movie, string_agg(actor, ', ') AS actor_list
FROM table_name
GROUP BY movie;</code>
Copier après la connexion

string_agg() concatène les noms d'acteurs, séparés par des virgules, pour chaque film. GROUP BY movie assure une rangée par film.

Alternative pour les anciennes versions de PostgreSQL (pré-9.0) :

Pour les anciennes versions de PostgreSQL, utilisez array_agg() et 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>
Copier après la connexion

Cela regroupe les acteurs dans un tableau, puis le convertit en une chaîne séparée par des virgules. La clause ORDER BY actor trie les acteurs par ordre alphabétique dans la liste de chaque film.

Personnalisation de l'ordre de la liste des acteurs :

Pour contrôler l'ordre des acteurs dans chaque liste (par exemple, par ordre de facturation), ajoutez ORDER BY à l'intérieur de string_agg() ou 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>
Copier après la connexion

Cette approche rationalise la présentation des relations film-acteur, facilitant l'analyse et l'affichage des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal