• 오라클 만의 쿼리, 오라클이 과거에 사용했었던 조인문장에 대해서 알아보겠다.

  • ANSI INNER JOIN
    SELECT N.ID , N.TITLE, M.NAME
    FROM
    MEMBER M
    INNER JOIN NOTICE N ON M.ID = N.WRITER_ID
    WHERE M.ID= 'newlec';
    
  • Oracle INNER JOIN
    SELECT N.ID, N.TITLE, M.NAME
    FROM MEMBER M, NOTICE N
    WHERE M.ID=N.WRTER_ID AND M.ID = 'newlec';
    

    -> WHERE 절을 사용한다. 보기가 불편하고 깔끔하지못하다.


  • ANSI OUTER JOIN
    SELEC N.*, M.NAME WRITER_NAME
    FROM NOTICE N LEFT OUTER JOIN MEMBER M
    ON M.ID = N.WRITER_ID
    
  • Oracle OUTER JOIN
    SELECT N.*, M.NAME WRITER_NAME
    FROM NOTICE N, MEMBER M
    WHERE N.WRITER_ID = M.ID(+)
    

    -> 거꾸로 되있어서 주의해서 써야된다.


  • ANSI CROSS JOIN
    SELECT N.*, M.NAME WRITER_NAME
    FROM MEMBER M CROSS JOIN NOTICE N
    
  • Oracle CROSS JOIN
    SELECT N.*, M.NAME WRITER_NAME
    FROM NOTICE N, MEMBER M;
    

댓글남기기