오라클 inner join 가장 작은 값하고만. 0 4 1,082

by 김쿠쿠 [2018.04.04 17:07:39]


A, B 두 테이블이 있고,

두 테이블이 inner join 관계 일떄.

join 후 1:N관계라면, B테이블의 id값이 제일 작은 행과 1:1 join을 할 수 있는 방법이 있을까요?

by 김쿠쿠 [2018.04.04 17:10:07]

지금은 딱히 방법을 몰라서 , 그냥 inner join을 걸고, 서브쿼리에 lower를 써서 처리 하는 방향으로 처리 했습니다만..

B테이블에서 가져올 컬럼이 많은지라.. 이렇게 쓰면 안될거 같은 느낌이..


by 우리집아찌 [2018.04.04 17:14:50]

B 테이블을 인라인뷰로 묶어서 제일 작은행을 추출하시고 JOIN 거시면 됩니다.


by 마농 [2018.04.04 18:07:33]
SELECT d.deptno
     , d.dname
     , e.empno
     , e.ename
  FROM dept d
 INNER JOIN
       (SELECT deptno
             , empno
             , ename
             , ROW_NUMBER() OVER(PARTITION BY deptno ORDER BY empno) rn
          FROM emp
        ) e
    ON d.deptno = e.deptno
 WHERE e.rn = 1
;
SELECT *
  FROM (SELECT d.deptno
             , d.dname
             , e.empno
             , e.ename
             , ROW_NUMBER() OVER(PARTITION BY d.deptno ORDER BY e.empno) rn
          FROM dept d
         INNER JOIN emp e
            ON d.deptno = e.deptno
        )
 WHERE rn = 1
;

 


by 김쿠쿠 [2018.04.05 09:12:03]

감사합니다. 덕분에 잘 처리하였습니다.~~!

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