안녕하십니까! DB를 공부중인 학생입니다.
A_TABLE 이라는 테이블과 B_TABLE 이라는 테이블이 있을 때
A_TABLE이라는 테이블에 데이터가 많아 작성일(컬럼명: REGISTER_DATE) 기준으로 제일 최근 글 하나만 가져오게 하고 싶습니다.
쿼리:
SELECT * FROM (SELECT * FROM A_TABLE WHERE TABLE_ID = 'FIRST' ORDER BY REGISTER_DATE DESC) WHERE ROWNUM = 1;
이렇게 만들었고, 가장 최신 글 하나만 나왔습니다!
그런데 A_TABLE의 컬럼중 하나인 SECOND을 외래키로 가지고 있는
B_TABLE에서도 FILE_NUMBER(첨부파일번호)를 가지고 오도록 SELECT 하고 싶은데
어떻게 수정할 수 있을까요??
그냥 한번더 SELECT 로 감싸면 되지 않을까요?
SELECT A.* , B.FILE_NUMBER
FROM (SELECT * FROM
(SELECT * FROM A_TABLE WHERE TABLE_ID = 'FIRST' ORDER BY REGISTER_DATE DESC) WHERE ROWNUM = 1) A , B_TABLE B
WHERE A.SECOND = B.SECOND
이렇게 하면 될거 같은데. 더 예쁜 쿼리는 밑에 고수분이..
1. 인라인뷰 이용해 조인하시면 됩니다. 위 댓글 참조
2. SELECT 시 * 사용하기 보다는 필요한 항목만 적어 주는 것이 좋습니다.