Heim > Datenbank > MySQL-Tutorial > Wie verbinde ich PostgreSQL-Tabellen mit Array-Typen und behalte die Reihenfolge der Elemente bei?

Wie verbinde ich PostgreSQL-Tabellen mit Array-Typen und behalte die Reihenfolge der Elemente bei?

Susan Sarandon
Freigeben: 2024-12-15 13:53:25
Original
500 Leute haben es durchsucht

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

PostgreSQL-Tabellen mit Array-Typen verbinden und die Reihenfolge der Elemente beibehalten

Betrachten Sie zwei Tabellen in einer Datenbank:

  • Elemente: Enthält eindeutige ID-Zeilen sowie verschiedene Felder.
  • some_chosen_data_in_order: Enthält ein Array-Feld namens id_items mit ID-Werten aus der Artikeltabelle, die in einer bestimmten Reihenfolge angeordnet sind.

Zum Abrufen von Daten aus Wenn Sie die Artikeltabelle basierend auf den Array-Feldwerten in some_chosen_data_in_order unter Beibehaltung ihrer Reihenfolge erstellen, können Sie Folgendes verwenden Abfrage:

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

Diese Abfrage führt die folgenden Aktionen aus:

  • unnest(ARRAY[1,2,3,2,3,5]) : Entschachtelt das bereitgestellte Array in einzelne Elemente und erstellt eine Folge von Zeilen.
  • LEFT JOIN-Elemente werden aktiviert t.id=item_id: Verbindet die nicht verschachtelten Elemente basierend auf dem ID-Feld mit der Artikeltabelle.
  • Der LEFT JOIN stellt sicher, dass alle nicht verschachtelten Elemente zurückgegeben werden, auch wenn sie keine übereinstimmenden Zeilen im haben items-Tabelle.

Mit dieser Abfrage können Sie die Elemente in der durch das id_items-Array in der angegebenen Reihenfolge abrufen some_chosen_data_in_order Tabelle.

Das obige ist der detaillierte Inhalt vonWie verbinde ich PostgreSQL-Tabellen mit Array-Typen und behalte die Reihenfolge der Elemente bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage