使用陣列類型連接PostgreSQL 表並保留元素順序
考慮資料庫中的兩個表:
-
items
:包含唯一的ID 行以及各種欄位。 -
some_chosen_data_in_order
:包含一個名為 id_items 的數組類型字段,其中包含以特定順序排列的項目表中的 ID 值。
從以下位置擷取資料基於 some_chosen_data_in_order中的陣列欄位值的項目表,同時保留其順序,您可以採用以下方法查詢:
SELECT t.*
FROM unnest(ARRAY[1,2,3,2,3,5]) item_id
LEFT JOIN items t on t.id=item_id
登入後複製
此查詢執行以下操作:
-
unnest( ARRAY[1,2,3,2,3,5])
:將提供的陣列取消嵌套到各個元素中,建立行序列。 -
LEFT JOIN items t on t.id=item_id
:根據 id 欄位將未巢狀的元素連接到 items 表。 - LEFT JOIN 確保傳回所有未巢狀的元素,即使它們沒有符合項目表中的行。
透過使用此查詢,您可以依照指定的順序擷取項目some_chosen_data_in_order 表中的 id_items 陣列。
以上是如何連接具有數組類型的 PostgreSQL 表並維護元素順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!