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
운영게시판
최근게시물
MySQL Q&A 24914 게시물 읽기
No. 24914
계층구조 쿼리(오라클 connect by 와 같은 기능 구현)힌트좀...
작성자
초보
작성일
2005-12-30 14:43ⓒ
2005-12-30 14:44ⓜ
조회수
8,283

아래는 오라클 에서 사용되는 start with/connect by 에 한 쿼리 입니다. 이와 같이

 

MySQL에서 start with/connect by 와 같은 기능을 할 수 있게 쿼리를 만든고자 하는데

아시는분 있으시면 힌트좀 부탁 드립니다.

 

 

SQL>SELECT LEVEL,empno,ename, mgr
FROM emp
START WITH job = 'PRESIDENT' -- 직업이 PRESIDENT를 기준으로
CONNECT BY PRIOR empno = mgr; -- 사원(empno)과 관리자(mgr)의 관계를 계층 구조로 조회

LEVEL EMPNO ENAME MGR
--------- ---------- -------------------- ----------
1 7839 KING
2 7566 JONES 7839
3 7788 SCOTT 7566
4 7876 ADAMS 7788
3 7902 FORD 7566
4 7369 SMITH 7902
2 7698 BLAKE 7839
3 7499 ALLEN 7698
3 7521 WARD 7698
3 7654 MARTIN 7698
3 7844 TURNER 7698
3 7900 JAMES 7698
2 7782 CLARK 7839
3 7934 MILLER 7782

이 글에 대한 댓글이 총 3건 있습니다.
self join(용어가 맞나?)을 이용하면 될 것같습니다.

mysql> select a.*, ifnull(b.no,"") from test a left join test b on a.level=b.level+1;
+-------+------+-------+-----------------+
| level | no   | name  | ifnull(b.no,"") |
+-------+------+-------+-----------------+
|     1 | 7839 | KING  |                 |
|     2 | 7566 | JONES | 7839            |
|     3 | 7788 | SCOTT | 7566            |
|     4 | 7876 | ADAMS | 7788            |
+-------+------+-------+-----------------+
4 rows in set (0.00 sec)

윤용섭님이 2005-12-30 17:17에 작성한 댓글입니다. Edit

테이블 자체에 LEVEL이라는 별도의 필드가 없을경우....

 

위와 같이 할 수 없을것 같은데요... ^^ LEVEL을 알려주는

 

필드가 없을 경우는 어떻게 해야 하나요...도와 주세요!!!!!

초보2님이 2006-01-03 11:40에 작성한 댓글입니다. Edit

primary key 로 조인하면 될 것입니다.

윤용섭님이 2006-01-03 12:40에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
24919Oracle -> MySQL 조인 쿼리 변환 .. [1]
초보
2006-01-01
3561
24916질문있습니다!. [1]
희망
2005-12-31
1093
24915자동디비생성문제(php에서) [1]
mysql
2005-12-30
1165
24914계층구조 쿼리(오라클 connect by 와 같은 기능 구현)힌트좀... [3]
초보
2005-12-30
8283
24913Connection을 유지 하는 방법
박지현
2005-12-30
1315
24912출력이 이상합니다. 도와 주세요. [1]
궁금이
2005-12-30
1267
24911JOIN 을 이용해서 두개의 테이블 의 결과를 출력하고 싶습니다. [1]
송은이
2005-12-30
2545
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다