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 ?
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!