Maison >base de données >tutoriel mysql >Comment joindre des tables PostgreSQL avec des types de tableaux et conserver l'ordre des éléments ?

Comment joindre des tables PostgreSQL avec des types de tableaux et conserver l'ordre des éléments ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-15 13:53:25502parcourir

How to Join PostgreSQL Tables with Array Types and Maintain Element Order?

Joindre des tables PostgreSQL avec des types de tableaux et préserver l'ordre des éléments

Considérons deux tables dans une base de données :

  • éléments : contient des lignes d'identification uniques ainsi que divers field.
  • some_chosen_data_in_order : inclut un champ de type tableau nommé id_items avec les valeurs d'ID de la table des éléments disposées dans un ordre particulier.

Pour récupérer les données du table d'éléments basée sur les valeurs des champs du tableau dans some_chosen_data_in_order tout en préservant leur ordre, vous pouvez utiliser ce qui suit requête :

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 effectue les actions suivantes :

  • unnest(ARRAY[1,2,3,2,3,5]) : désemboîte le tableau fourni en éléments individuels, créant une séquence de lignes.
  • LEFT JOIN items t on t.id=item_id : joint les éléments non imbriqués à la table items en fonction du champ id.
  • LEFT JOIN garantit que tous les éléments non imbriqués sont renvoyés, même s'ils n'ont pas de lignes correspondantes dans le items table.

En utilisant cette requête, vous pouvez récupérer les éléments dans l'ordre spécifié par le tableau id_items dans le table some_chosen_data_in_order.

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