database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10265 게시물 읽기
No. 10265
oracle > postgresql with recursive 재 질문드립니다..
작성자
꼬끼리
작성일
2021-07-13 10:32
조회수
1,771

지난번 질문은 이해가 잘 되어서 쉽게 비슷한 쿼리들을 잘 바꿔나갔습니다.

답변주신 김상기님 감사드립니다..


염치스럽지만 다시한번 같은질문을 드리게 되었네요 ..


oracle 쿼리입니다.


SELECT m.menu_seq

           , m.p_menu_seq

           , m.menu_name

           , m.url

           , level lvl

           FROM tm_admin_menu m

           WHERE m.use_yn = 'Y' AND m.show_yn = 'Y'

             AND EXISTS(SELECT 1 FROM tm_admin_auths WHERE menu_seq = m.menu_seq AND role_seq = #{roleSeq} AND auth_se IN( '${authSe}' ))

           START WITH m.p_menu_seq = 0

           CONNECT BY PRIOR m.menu_seq = m.p_menu_seq

           ORDER SIBLINGS BY m.sort_no


결과

 

menu_seq p_menu_seq menu_name url lvl
8 0 a asdf 1
9 8 b asdf 2
10 8 c asdf 2
11 8 d asdf 2
15 8 e asdf 2




psql


WITH RECURSIVE a as (

SELECT     m.menu_seq

        , m.p_menu_seq

        , m.menu_name

        , m.url

        , 1 lvl

 FROM tm_admin_menu m

WHERE m.p_menu_seq = 0 and m.use_yn = 'Y' AND m.show_yn = 'Y'

AND EXISTS(SELECT 1 FROM tm_admin_auths WHERE menu_seq = m.menu_seq AND role_seq = 5 AND auth_se IN( 'R' ))

UNION ALL

SELECT     m.menu_seq

        , m.p_menu_seq

        , m.menu_name

        , m.url

        , a.lvl + 1

 FROM tm_admin_menu m

JOIN a ON a.menu_seq = m.p_menu_seq

// JOIN a ON m.menu_seq = m.p_menu_seq

// 두개다 안되네...

) SELECT * FROM a

 

menu_seq p_menu_seq menu_name url lvl
8 0 a asdf 1



아래의 psql로 변경을 해보았는데.... 위 아래의 결과가 다르게 나옵니다.


제 쿼리를 봐주시면 감사하겠습니다.

이 글에 대한 댓글이 총 1건 있습니다.

조건을 구별하고 조건의 수행 순서를 이해해야 합니다.

1. 시작조건 Start With

2. 전개조건 Connect By

3. 추출조건 Where

마이그레이션 된 쿼리에서는 3번의 조건이 1번 위치에 가 있네요.

마농(manon94)님이 2021-07-14 17:55에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10268postgresql migration function [2]
김갑생
2021-07-19
2022
10267온라인 PostgreSQL 테스트환경
류신
2021-07-19
1998
10266데이타 롤링(?)...데이타 순환(?) 해당 표현이 맞는지 모르겠지만, 고수님들의 도움이 필요합니다. [4]
알고싶어쇼
2021-07-13
1889
10265oracle > postgresql with recursive 재 질문드립니다.. [1]
꼬끼리
2021-07-13
1771
10264too many clients already 메시지가 발생하면서 서버가 다운되었습니다. [7]
정상규
2021-07-12
1986
10263oracle > postgresql with recursive 봐주세요 [1]
꼬끼리
2021-07-05
1960
10262rowtocol 함수 변환 [1]
대머리
2021-07-02
1875
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다