Mudah Menampilkan Data Recursif Query PostgreSQL

Hai guys, kali ini saya ingin memberikan sedikit informasi yang mungkin berguna buat kalian para programmer yang selalu berkolaborasi dengan database dalam projeknya. Apa itu recursif ? dikuti dari Wikipedia, yaitu

Rekursi adalah proses pengulangan sesuatu dengan cara kesamaan-diri. Sebagai contohnya, saat dua cermin berada paralel antara satu dengan yang lain, gambar yang tertangkap adalah suatu bentuk rekursi tak-terbatas

Jadi disini lebih dikenalnya metode data parent child, biasanya di gunakan oleh data menu atau data organisasi yang memiliki kedalaman (tree) tidak terhingga. Saya mengimplementasikan tutorial ini menggunakan database postgrsql dan ini bisa gunakan di MySQL juga loh.

Tabel yang saya miliki hanya 1 tabel yaitu :

nah disini kita hanya fokus menggunakan field :

  • id, sebagai primary key data
  • name, sebagai identitas informasi data yang akan di tampilkan
  • parent_id, sebagai acuan data tree (recursif)

Bagaimana saya ingin menampikan data seperti dibawah ini :

Gudang A isinya kategori barang apa saja dan didalam kategori barang tersebut ada barang apa saja, dan di data barangnya ada ukuran apa saja, ini studi kasus yang di implementasikan pada tutorial ini dengan kedalaman data child tak terhinggal.

Perhatikan query dibawah ini :

WITH RECURSIVE ctename AS (
SELECT id, name, stok, parent_id
FROM inv_gudang
WHERE id = 2089
UNION ALL
SELECT inv_gudang.id, inv_gudang.name, inv_gudang.stok,inv_gudang.parent_id
FROM inv_master_gudang
JOIN ctename ON inv_gudang.parent_id = ctename.id
)
SELECT * FROM ctename

perhatikan query diatas ada kata “ctename” ini adalah sebuah kata alias yang tidak adasangkut pautnya dengan nama field pada table kalian, lalu setelah itu masukan perintah select field apa saya yang akan kalian tampilkan dan harus sama dengan select setelah Union ALL ya guys. Kata “inv_gudang” adalah nama tabel yang digunakan, lalu perhatikan disana ada perintah “Join” dengan kata alias “ctename”, dimana where nya di sinkronisasikan dengan id primary key dengan parent_id yang menjadi header {induk data} dari childnya.

apabila kalian menggunakan recursif dengan 2 tabel, yg pertama 1 tabel sebagai header dan 1 tablenya sebagai child rasanya kurang pass untuk tipe data parent child / treeview, sebaiknya menggunakan 1 tabel saja yang bisa beranak sampai kedasar yang tidak menentu.

Semoga tutorial ini berguna buat kalian ya guys.

Author: Hafid

Hi! My name is Hafid and I'm Indonesian DKI Jakarta. Here's my profile www.mhafid.com. In here, I share a lot of information about programming and linux there.

Leave a Reply

Your email address will not be published. Required fields are marked *