본문 바로가기
SQL 문제 풀기/2. SQLD 기출 : 2024.3.01~2024.4.25

<SQLD 51> 조인에 대한 기출문제

by HYEHYE_SON 2024. 4. 21.
728x90

매일 SQLD 기출 문제 풀기 챌린지


 


문제 51.

다음의 JOIN 결과를 보고 올바른 것은?

 

 

[TEST51_1]

COL1 COL2
1 2
2 2
3 3

 

 

[TEST51_2]

COL1 COL2
1 2
2 4
4 5

 

 

[RESULT]

TEST51_1.COL1 TEST51_1.COL2 TEST51_2.COL1 TEST51_2.COL2
1 2 1 2
2 2 2 4
3 3 NULL NULL

 

SELECT *
    FROM TEST51_1 (     ) TEST51_2
    ON TEST51_1.COL1 = TEST51_2.COL1;

 

 

답 : _________


해설해보기

■ LEFT OUTER JOIN
조인은 여러 개의 테이블의 컬럼들을 활용하여 한 번에 원하는 것을 출력하고자 할 때 사용하는 문법이다.
그 중 LEFT JOIN이란

왼쪽 테이블의 모든 레코드와

왼쪽 테이블과 일치하는 오른쪽 테이블의 레코드 결과가 표시됩니다.

만약, 오른쪽 테이블이 왼쪽 테이블과 일치하는 레코드가 없을 경우 NULL 로 표시됩니다. 

 

문제에 제시된 결과를 보면,

TEST51_1 테이블의 모든 레코드는 출력되었는데,

TEST51_2 테이블은 TEST51_1과 일치하는 레코드만 출력되고

없는 레코드의 경우 NULL로 표시된 것을 확인할 수 있습니다. 

 

따라서 빈칸에 들어갈 정답은

left outer join 혹은 left join입니다.

 

직접 실행해보기

select * 
    from test51_1 left outer join test51_2
    on test51_1.col1 = test51_2.col1;

\


관련 스크립트

CREATE TABLE TEST51_1 
( COL1 NUMBER(5),
  COL2 NUMBER(5) );

INSERT INTO TEST51_1 (COL1, COL2) VALUES ( 1, 2 );
INSERT INTO TEST51_1 (COL1, COL2) VALUES ( 2, 2 );
INSERT INTO TEST51_1 (COL1, COL2) VALUES ( 3, 3 );

CREATE TABLE TEST51_2
( COL1 NUMBER(5),
  COL2 NUMBER(5) );
  
INSERT INTO TEST51_2 (COL1, COL2) VALUES ( 1, 2 );
INSERT INTO TEST51_2 (COL1, COL2) VALUES ( 2, 4 );
INSERT INTO TEST51_2 (COL1, COL2) VALUES ( 4, 5 );

 

반응형