Oracle 데이터베이스에서 쿼리를 실행하려고합니다.여러 조인을 사용하는 Oracle ROWNUM
내 테이블 구조는 다음
- D - 일대일
- O가 O를 - r에 일대
- O - 해요 대다 (비아 MTM)
나는 다음과 같은 쿼리를 사용하고 있습니다 :
SELECT o.id ID, ROWNUM rn /*row 1*/
FROM TABLE_D d
LEFT JOIN TABLE_O o ON d.O_ID=o.ID
RIGHT JOIN TABLE_R r ON r.O_ID = o.ID AND r.TYPE = 'SOME_TYPE' /*row 4*/
RIGHT JOIN TABLE_MTM mtm ON o.ID = mtm.ORD_ID /*row 5-6*/
RIGHT JOIN TABLE_M m ON mtm.M_ID = m.ID AND m.TYPE = 'SOMETHING_ELSE' /*row 5-6*/
WHERE o.ACTIVE=0
ORDER BY o.SOME_COL ASC;
을 (이것은 단지 작은 페이지입니다 내 전체 쿼리 예술; 네, ROWNUM, 'd'테이블 및 모든 것이 필요합니다)
- 이 쿼리를 실행하면 결과가 반환되지 않습니다. I는 SELECT에서 ROWNUM을 제거하면
- 는 그것이 내가 행 5 열 (6)은, 그 결과를 반환 제거하면
- 결과 반환 I는 4 행을 삭제하는 경우 결과를
- 를 반환한다.
아무도 내가 누락 된 부분을 말할 수 있습니까?
업데이트 : 모두 잘 Oracle 12c에서 작동합니다. 10g에서 올바르게 작동하지 않습니다.
줄 별명 "d"에 ROWNUM에 접두어를 붙였습니까? –
ROWNUM이 (가) 테이블의 열이 아닙니다. –