Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyertai Jadual PostgreSQL dengan Jenis Array dan Mengekalkan Susunan Elemen?

Bagaimana untuk Menyertai Jadual PostgreSQL dengan Jenis Array dan Mengekalkan Susunan Elemen?

Susan Sarandon
Lepaskan: 2024-12-15 13:53:25
asal
500 orang telah melayarinya

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

Menyertai Jadual PostgreSQL dengan Jenis Tatasusunan dan Mengekalkan Susunan Elemen

Pertimbangkan dua jadual dalam pangkalan data:

  • item: Mengandungi baris ID unik bersama dengan pelbagai medan.
  • some_chosen_data_in_order: Termasuk medan jenis tatasusunan bernama id_items dengan nilai ID daripada jadual item yang disusun dalam urutan tertentu.

Untuk mendapatkan semula data daripada jadual item berdasarkan nilai medan tatasusunan dalam some_chosen_data_in_order sambil mengekalkan pesanannya, anda boleh menggunakan pertanyaan berikut:

SELECT t.*
FROM unnest(ARRAY[1,2,3,2,3,5]) item_id
LEFT JOIN items t on t.id=item_id
Salin selepas log masuk

Pertanyaan ini melaksanakan tindakan berikut:

  • unnest(ARRAY[1,2,3,2,3,5] ): Menyahsarang tatasusunan yang disediakan kepada elemen individu, mewujudkan urutan baris.
  • LEFT JOIN item t pada t.id=item_id: Mencantumkan elemen yang tidak bersarang pada jadual item berdasarkan medan id.
  • LEFT JOIN memastikan bahawa semua elemen yang tidak bersarang dikembalikan, walaupun mereka tidak mempunyai baris yang sepadan dalam item jadual.

Dengan menggunakan pertanyaan ini, anda boleh mendapatkan semula item dalam susunan yang ditentukan oleh tatasusunan id_items dalam jadual some_chosen_data_in_order.

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Jadual PostgreSQL dengan Jenis Array dan Mengekalkan Susunan Elemen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan