1:M 관계에서 M테이블의 값이 제일 작은 것을 가져오는 쿼리 질문입니다. 0 3 1,576

by 곰돌이 [2014.07.29 12:06:36]


 

A테이블

A B
1 수지
2 현아

 

B테이블

A WORK_ID WORK_TIME
1 1 09:00
1 2 10:00
1 3 11:00
1 4 12:00

 

A테이블 조회시 B테이블의 A의 가장작은 WORK_TIME(09:00)을 가져오고싶은데요, 스칼라로 할지, 인라인뷰 조인으로할지 아님.. 서브쿼리로 가져와서 보여줄지.. 어느 방법으로 처리해야 속도가 빠를까요?

by 아발란체 [2014.07.29 13:07:14]

스칼라 효과?가 있어 보이지 않아서 뭘로 하든 속도가 비슷 할 것 같습니다.


by 우리집아찌 [2014.07.29 16:13:40]

시간만 가져오시려면 b 테이블 그룹핑 하다음 조인하시거나

WORK_ID 가져오시려면 ROW_NUMBER() OVER() 쓰셔서 작은값 가져오시면..


by 비주류 [2014.07.29 22:24:42]

B 테이블에 A + WORK_ID(WORK_TIME과 순서 일치시) 또는 A + WORK_TIME 인덱스 가 있으면 스칼라 서브쿼리로 ORDER BY (필요시 힌트포함) + ROWNUM = 1 조건줘서 WORK_TIME 가져오는 것도 괜찮을 것 같습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입