2024.04.30

INNER JOIN

  • 표준 문법 : INNER JOIN ~ ON
  • NULL 이면 데이터가 나오지 않는다.
    -- INNER JOIN
    -- 회원 정보 보기 - 아이디, 이름, 연락처, 등급번호, 등급명
    SELECT ID, NAME, TEL, M.GRADENO, GRADENAME
    FROM GRADE G, MEMBER M
    WHERE G.GRADENO = M.GRADENO -- 서로 연관되어 있는 것 끼리 조인
    ;
    
  • 한 테이블 안에 같은 FK가 두번 쓰여질 경우 조회할 때 부모 칼럼을 2개 만들어 조회한다.
    SELECT
    M.NO, M.CONTENT,
    M.SENDERID, SM.NAME, M.SENDATE,
    M.ACCEPERID, AM.NAME, M.ACCEPTDATE
    FROM MESSAGE M, MEMBER SM, MEMBER AM -- SENDER와 ACCEPTER를 구분하기 위해 MEMBER 테이블을 두번 작성
    -- 조건((일반 조건) AND (조인 조건)) : 조건이 없으면 생략 가능
    WHERE M.SENDERID = SM.ID AND M.ACCEPTERID = AM.ID;
    

OUTER JOIN

  • 칼럼 뒤에 (+)
  • NULL인 경우 NULL로 표시 - 데이터 나온다.
    SELECT ID, NAME, TEL, M.GRADENO, GRADENAME
    FROM GRADE G, MEMBER M
    WHERE G.GRADENO = M.GRADENO(+) -- 외부 조인 OUTTER JOIN
    ;
    
  • 일반 조건과 조인 조건이 있으면 일반 조건을 앞에 둔다.
    WHERE (ID = 'TEST') AND (G.GRADENO = M.GRADENO);