카테고리 없음

SQL LEFT OUTER JOIN

성장하는 재테커 2024. 3. 20. 06:56
반응형

LEFT OUTER JOIN 구문이 실무에서 나와서 정의에 대해 예전에 SQL 공부할 때 정리했던 노트를 다시 꺼내어 찾아보았다. FROM 뒤에 LEFT OUTER JOIN 의 왼쪽에 위치한 테이블을 100의 Base로 두고 LEFT OUTER JOIN 우측의 테이블을 위치시키는 것인데, 일반 조인문으로도 활용이 가능하며 일반 조인문으로 활용 시에는 우측 테이블 끝에 (+)를 표현하는 것같다. SQLD를 한번에 합격했지만 당시에 공부했던 내용은 약간 암기형으로 현재는 머릿속에 남아있지 않아, SQLD 공부할 때 정리했던 노트와 책을 다시 꺼내어, 이제는 실무에서 활용할 수 있게 머릿속에 다시 넣고 익숙해질 수 있게 정리해 보려고 한다.

 

 

 

 

아래는 SQLD 자격증 취득하려고 공부할 당시 책. SQL 자격검정 실전문제 내용을 보고 노트에 정리한 내용인데 다시 올려본다.

 

오라클에서는 Outer Join 구문을 (+)기호를 사용하여 처리할 수 있으며, 이를 ANSI 문장으로 변경하기 위해서는 Inner 쪽 테이블 조건절을 ON 절에 위치시켜야 정상적 Outer Join 수행할 수 있다.

 

LEFT OUTER JOIN: 좌측 테이블이 기준이 되어 결과를 생성한다. Table A 와 B가 있을 때 (table 'A'가 기준이 됨) A와 B를 비교해서 B의 Join 컬럼에서 같은 값이 있을 때 B 테이블에서 해당 데이터를 가져오고 B의 Join 컬럼에서 같은 값이 없는 경우에는 B 테이블에서 가져오는 컬럼들은 Null값으로 채운다. Left Join으로 Outer 키워드를 생략해서 사용할 수 있다.

 

 

출처: [책] SQL 자격검정 실전문제

 

 

SELECT A.게시판ID, A.게시판명, COUNT(B.게시글ID) AS CNT

FROM 게시판A LEFT OUTER JOIN 게시글B

ON (A.게시판ID=B.게시판ID AND B.삭제여부='N')

WHERE A.사용여부='Y'

GROUP BY A.게시판ID, A.게시판명

ORDER BY A.게시판ID;

 

=

 

SELECT A.게시판ID, A.게시판명, COUNT(B.게시글ID) AS CNT

FROM 게시판A, 게시판B

WHERE A.게시판ID=B.게시판ID(+)

AND B.삭제여부(+)='N'

AND A.사용여부='Y'

GROUP BY A.게시판ID=A.게시판명

ORDER BY A.게시판ID;

 

출처: [책] SQL 자격검정 실전문제

 

출처: 픽사베이

반응형