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
운영게시판
최근게시물
Sybase Q&A 1003 게시물 읽기
No. 1003
쿼리좀 분석해주세요...
작성자
김동수(poiu1112)
작성일
2004-11-02 15:38
조회수
5,542

SELECT T.*, isnull(Ts.is_show_jikwi, '0') is_show_jikwi, isnull(Ts.is_show_jikmoo, '0') is_show_jikmoo, isnull(Ts.is_show_bojik, '0') is_show_bojik, isnull(Ts.is_lock, '0') is_lock FROM HMC_H3Tteacher T, HMC_H3Tteacher_sub Ts WHERE rtrim(T.jojik_code) LIKE ? AND rtrim(T.gaein_no) *= rtrim(Ts.gaein_no) ORDER BY T.order_no

 

이 쿼리좀 해석 해 주세요...

 

전체 다 를 요구하는건 아니구요 ^^; where 조건부터 order by 부분까지요...

 

두 테이블을 어떤식으로 참조하는건지 ㅠㅠ 알려주세요... 부탁 드립니다....

 

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

SELECT ....

   FROM HMC_H3Tteacher T

           , HMC_H3Tteacher_sub Ts

 WHERE rtrim(T.jojik_code) LIKE ?

      AND rtrim(T.gaein_no) *= rtrim(Ts.gaein_no)

 ORDER BY T.order_no

 

일단 첫번째 조건 rtrim(T.jojik_code) LIKE ? <= 이 부분은..

java 소스상에서 가변값을 받기 위한 설정인거 같네요..

? 부분에 나중에 변수로 받은 값이 세팅될 위치인것을 나타내는겁니다..

 

rtrim() 함수는 아시겠지만 해당 컬럼의 오른쪽에 있는 공백 문자를

제거하라는 함수입니다.

 

like 연산자는 rtrim(T.jojik_code) like '%DEPT01%'  로 하였을 경우..

조직코드 값에 'DEPT01' 이 포함되어 있는 모든 자료를 검색대상으로 보겠다는겁니다.

 

두번째 조건 rtrim(T.gaein_no) *= rtrim(Ts.gaein_no) 부분은..

오라클 상의 (+) Outer Join 과 같은 개념인데..

T 테이블과 Ts 테이블을 조인을 할때.. T 테이블을 기준으로..

T 테이블에는 있는 자료가 Ts 테이블엔 없을 경우.. 그 자료를 누락시키지 않고..

결과값을 얻고자 할때.. *= (Outer Join) 을 합니다..

 

예를 들어 두 테이블에 자료가 다음과 같을 경우..

T 테이블 gaein_no      Ts 테이블 gaein_no

           1                                    2

           2                                    3

           3                                    5

           4                                    6

 

rtrim(T.gaein_no)   = rtrim(Ts.gaein_no)  => 이 경우엔 2 3 자료만 검색되고.

rtrim(T.gaein_no) *= rtrim(Ts.gaein_no)  => 이 경우엔 1 2 3 4 자료가 검색됩니다.

 

충분한 설명이 되었을지 모르겠네요.. 또 궁금한점 있으면 질문글 올려주세요..

방문객님이 2004-11-03 17:38에 작성한 댓글입니다. Edit

다른 측면에서 분석을 해 보았습니다...

지금 특별히 할 일이 없는 관계로 ^------^

 

HMC_H3Tteacher: 교사(강사, 교수) 마스터 정보

HMC_H3Tteachere_sub: 교사의 상세(추가)정보

 

교사가 어느 조직에 속해있는지 정보는 교사 마스터 테이블에 있고, 교사의 직위, 직무, 보직 등의 정보는 교사 상세정보에 있는 것 같군요.

 

이 쿼리는 특정 조직에 속해 있는 교사 마스터 정보와 교사들의 직위, 직무, 보직, ??(is_lock) 등의 정보를 추출하는 쿼리 인 듯 합니다. 그런데 마스터 정보가 있는 교사라도 상세 정보가 없는 교사가 있을 수 있으므로 그런 경우를 대비해서 NULL 처리를 해서(즉 상세정보를 보여줄 수가 없으므로 ) 모두 '0' 으로 나타나게 한 거네요.

 

심심해서 한 자 써 봤습니다.

찐빵님이 2004-11-09 17:16에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1006너무 자주 디비에 접근이 안되요.... [2]
성호
2004-11-04
7229
1005자주 디비가 멈쳐요...원인과 대체 방법좀 가르켜 주세요...부탁합니다.~~ [1]
진성호
2004-11-03
5541
1004(질문)text 칼럼에서의 검색시... [2]
궁금
2004-11-03
4823
1003쿼리좀 분석해주세요... [2]
김동수
2004-11-02
5542
1002sybase용 jdbc입니다.
캬캬
2004-10-29
5105
1001DB가 갑자기 다운되었는데...뭐가 충돌이라는 건지..도움을 부탁드립니다. [3]
뒷발발
2004-10-20
4464
1000sybase->ms-sql (사례해드림) [1]
남기복
2004-10-08
4976
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다