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 );
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 53> 날짜 함수에 대한 기출문제 (0) | 2024.04.23 |
---|---|
<SQLD 52> rollup에 대한 기출문제 (0) | 2024.04.22 |
<SQLD 50> NTILE 함수에 대한 기출문제 (0) | 2024.04.20 |
<SQLD 49> Order by 에 대한 기출문제 (1) | 2024.04.18 |
<SQLD 48> 레포팅 함수에 대한 기출문제 (0) | 2024.04.17 |