Maison >base de données >tutoriel mysql >Comment puis-je conserver l'ordre des éléments du tableau lors de la jointure de tables dans PostgreSQL ?

Comment puis-je conserver l'ordre des éléments du tableau lors de la jointure de tables dans PostgreSQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-25 21:09:19305parcourir

How Can I Preserve Array Element Order When Joining Tables in PostgreSQL?

Jointures PostgreSQL avec des types de tableau : classement des éléments de tableau

Dans PostgreSQL, il est souvent nécessaire de joindre des tables avec des colonnes de type tableau. Cependant, lorsqu'il s'agit de types de tableaux, maintenir l'ordre des éléments peut être difficile.

Problème :

L'objectif est de récupérer les données de la table des éléments dans l'ordre des éléments de la colonne de type tableau id_items de some_chosen_data_in_order table.

Tentatives :

Les tentatives infructueuses incluent l'utilisation des approches JOIN et de sous-requête, qui ne parviennent pas à préserver l'ordre des éléments du tableau.

Solution :

La solution consiste à utiliser la fonction unnest(), qui renvoie des éléments individuels de un tableau. En utilisant un LEFT JOIN avec unnest() appliqué à id_items, nous pouvons obtenir les éléments dans l'ordre souhaité.

Exemple :

SELECT t.*
FROM unnest(ARRAY[1,2,3,2,3,5]) item_id
LEFT JOIN items t on t.id=item_id

Cette requête sélectionnera éléments de la table des éléments avec les identifiants : 1,2,3,2,3,5, dans cet ordre.

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!

Déclaration:
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