by 코린이굔빈 [SQL Query] PostgreSQL start with with recursive [2021.12.15 09:15:48]
SELECT
m.child_id
, m.parent_id
, s.val_name
FROM table_m m, table_s s
WHERE m.id = s.id
START WITH m.child_id = 3
CONNECT BY PRIOR m.parent_id = m.child_id
ORDER BY m.child_id;
위와 같은 쿼리를 PostGreSQL로 변환 중 입니다. 다만 테이블 2개를 합쳐서 with recursive로 변환 중 인데 테이블 join은 어느 쪽에서 이루어지나요? 그리고 start with 처럼 조건은 어디에서 걸어야 하는건가요?
웹 개발을 시작하는데 쿼리가 너무 힘든 것 같습니다.. 심지어 오라클만 조금 아는 정도인데 다른 dbms를 이용하려니 더욱 더 어렵습니다.. 도와주세요ㅠㅠ
-- PostgreSQL -- WITH RECURSIVE t AS ( SELECT id , child_id , parent_id , 1 lv FROM table_m WHERE child_id = 3 -- Start With UNION ALL SELECT p.id , p.child_id , p.parent_id , c.lv + 1 lv FROM t c INNER JOIN table_m p ON c.parent_id = p.child_id -- Connect By ) SELECT m.child_id , m.parent_id , s.val_name FROM t m INNER JOIN table_s s ON m.id = s.id ORDER BY lv DESC ;