주케터의 메모장

[SQLD] 비전공자의 SQLD 공부 : STANDARD JOIN중 INNER JOIN에 대해 알아보자! 개념, 예제 풀어보기 본문

TEST/SQLD

[SQLD] 비전공자의 SQLD 공부 : STANDARD JOIN중 INNER JOIN에 대해 알아보자! 개념, 예제 풀어보기

JOOKETER 2023. 7. 27. 12:11
320x100

안녕하세요!

주케터입니다!

날씨가 너무너무 덥네요 ㅠ.ㅠ

더운 와중에도 SQLD공부는 놓칠 수 없죠!

 

오늘은 JOIN 쿼리에 대해 조금 배워보려고 해요

종류가 많아서 헷갈리는 JOIN! 

함께 정리해보아요.

 

 


1. STANDARD JOIN (표준 조인)

1) INNER JOIN : JOIN 조건에 충족하는 데이터만 출력되는 방식,

JOIN  조건들은 ON 절을 사용하여 작성해야한다는 점이 독특합니다.

**단! NATURAL JOIN에서는 ON절 사용이 불가합니다.

교집합같죠?

예제를 한 번 풀어볼까요?

[SQL]

SELECT SUM(A.COL2) AS RESULT1,

    COUNT(A.COL3) AS RESULT2,

    COUNT(DISTINCT A.COL3) AS RESULT3

 FROM SAMPLE A, SAMPLE2 B

WHERE A.COL1 = B.COL1 ;

 


FROM 절의 SAMPLE A, SAMPLE2 B 및 WHERE절의 A.COL1 = B.COL1 가 삽입 된 것으로 보아,

INNER JOIN함을 확인 할 수 있었습니다.

 

A.COL1을 기준으로 B.COL1과 동일한 데이터를 구하고,

SELECT 문에서 필요한 것을 구하면 되겠죠? 테이블을 봅시다.

 

[SAMPLE1 테이블]

COL1 COL2 COL3
110 A
115 A
220 NULL
150 B
50 NULL

[SAMPLE2 테이블]

COL1 COL2
11
0
20

 

그럼 두 테이블을 INNER JOIN 해볼까요?(두 테이블에 공통적으로 존재하는 데이터만 출력됩니다.)

COL1 COL2 COL3 COL1 COL2
110 A 11
115 A 0
220 NULL 20

보라색이 A 테이블, 푸른색이 B 테이블입니다.

 

A. COL1을 기준으로, B.COL1가 같다고 했기 때문에

A. COL1의 가나다가 B.COL1와 동일하여 합쳐졌습니다.

 

이제 SELECT 절을 풀어봅시다.

SELECT SUM(A.COL2) AS RESULT1,  -->> A.COL2의 합계를 구해달라고 합니다. 110+115+220 = 445 입니다.

    COUNT(A.COL3) AS RESULT2, -->> A.COL3의 갯수를 구해달라고 합니다.

    NULL은 값으로 메기지 않기 때문에 2입니다.

    COUNT(DISTINCT A.COL3) AS RESULT3 -->> 간만에 보이는 DISTINCT입니다.

   이는 중복을 제거하라는 명령어입니다. 그럼 A가 두개있으니 하나는 사라지게 됩니다.

    NULL값은 제외되기 때문에 1이됩니다.

 

정답은 그럼 하기와 같겠죠?

RESULT1 RESULT2 RESULT3
445 2 1

 


오늘은 INNER JOIN에 대해 알아보았는데요.

다음에는 OUTER JOIN에 대해 알아보는 시간을 가지도록 할게요.

 

저도 처음 배우는거라 많이 부족하지만,

최선을 다해 작성해보겠습니다.

 

감사합니다.

그럼 안녕!

728x90