Daily Weekly Monthly

Daily Shaarli

All links of one day in a single page.

August 20, 2015

Recursive Postgres Queries - Timothy's Blog

Comment lancer des requêtes réursives en postgre SQL ?

-- l'utilisation du WITH RECURSIVE permet d'appeler les enfants en entrée et d'obtenir les petits enfants etc...
WITH RECURSIVE product_type_elements AS (
-- requete non recursive, on commence par récupérer les élements de départ
(
(
select from product_type where id=249
)
)
UNION
-- puis on utilise les éléments trouvés pour récupérer les enfants
SELECT pt.

-- on utilise ici product_type_elements définit comme récursif (on l'appel lui même donc).
FROM product_type_elements pte, product_type pt
WHERE pt.parent_id = pte.id
)

-- la on récupére tout les product_type_elements
SELECT * from product_type_elements;

-- 0) on lance le select sur product_type_elements
-- 1) au départ, pas de pte trouvé donc on lance le select * from product_type where id=249
-- 2) puis sur la liste des pte trouvés on lance le second select qui lui sera récursif.
-- 3) on recommence le point 2 sur les lignes trouvées etc...

je trouve cela plus simple qu'avec ORACLE...