PostgreSQL-Joins mit Array-Typen: Array-Elemente anordnen
In PostgreSQL ist es oft notwendig, Tabellen mit Array-Typ-Spalten zu verknüpfen. Beim Umgang mit Array-Typen kann es jedoch eine Herausforderung sein, die Reihenfolge der Elemente beizubehalten.
Problem:
Das Ziel besteht darin, Daten aus der Artikeltabelle in der Reihenfolge abzurufen der Elemente in der Array-Typ-Spalte id_items aus some_chosen_data_in_order Tabelle.
Versuche:
Fehlgeschlagene Versuche umfassen die Verwendung der JOIN- und Unterabfrageansätze, bei denen die Reihenfolge der Array-Elemente nicht erhalten bleibt.
Lösung:
Die Lösung besteht darin, die Funktion unnest() zu verwenden, die einzelne Elemente von zurückgibt ein Array. Durch die Verwendung eines LEFT JOIN mit unnest(), das auf id_items angewendet wird, können wir die Elemente in der gewünschten Reihenfolge erhalten.
Beispiel:
SELECT t.* FROM unnest(ARRAY[1,2,3,2,3,5]) item_id LEFT JOIN items t on t.id=item_id
Diese Abfrage wählt aus Elemente aus der Artikeltabelle mit den IDs: 1,2,3,2,3,5, in dieser Reihenfolge.
Das obige ist der detaillierte Inhalt vonWie kann ich die Reihenfolge der Array-Elemente beim Verknüpfen von Tabellen in PostgreSQL beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!