Menampilkan semua child dengan postgresql
Kebutuhan “recursion” pada query terbilang jarang di temukan di proyek – proyek sederhana, biasanya ini di butuhkan pada saat kita membangun aplikasi yang isinya memiliki beberapa tingkatan element.
Contohnya seperti user multilevel marketing, untuk dapat menemukan semua downline seorang user sampai keakar nya perlu “recursion“.
Contohlainnya Aplikasi untuk multi company, yang didalam nya terdapat unitbisnis yang cukup banyak sehingga struktur nya memiliki banyak tingkatan.
Berikut ini solusi untuk menampilkan semua data child dari table yang sama dengan berdasarkan parent_id :
WITH RECURSIVE childs AS (
SELECT t1.id,
t1.parent_id,
t1.name
FROM product_categories t1
WHERE t1.id = 12
UNION ALL
SELECT t2.id,
t2.parent_id,
t2.name
FROM product_categories t2
INNER JOIN childs ON childs.id = t2.parent_id
)
SELECT id,
parent_id,
name
FROM childs;
t1.id = 12 , merupakan id parent yang mau di tampilkan child nya.