인프런- 데이터분석을 위한 중급 SQL 문제풀이- JOIN, UNION

르네·2023년 9월 19일
0

SQL

목록 보기
13/63

인프런 강의 <데이터분석을 위한 중급 SQL>을 듣고, 중요한 점을 정리한 글입니다.

JOIN

  1. INNER JOIN: 양쪽 테이블에 모두 정보가 있을 때에 출력된다.
SELECT * 
FROM TableA A
INNER JOIN TableB B 
ON A.key = B.key
  1. OUTER JOIN: INNER JOIN 제외하고 나머지 조인
  • LEFT JOIN: 왼쪽 테이블을 기준으로 조인을 하겠다. 왼쪽 테이블에는 데이터가 있고 오른쪽 테이블에는 데이터가 없을 때, 조인하는 방법
    ex. 유저와 유저의 주문을 출력해주는데, 한번도 주문하지 않은 유저들도 출력해줘야 할 때 -> OUTER JOIN씀!
SELECT * 
FROM TableA A 
LEFT JOIN TableB B 
ON A.key = B.key
  1. SELF JOIN: 동일한 하나의 테이블을 두개로 붙여 활용할 수 있다.

  2. FULL OUTER JOIN :

SELECT * 
FROM TableA A
FULL OUTER JOIN TableB B ON
A.key = B.key

UNION

  1. UNION
    : 집합연산. DISTICT값이 기본값. UNION ALL이라고 썼을 때만 중복된 값도 보여준다.
    : UNION 다하고 난 다음에, 마지막 쿼리에 ORDER BY 해줘야 UNION된 전체 테이블에 정렬이 적용된다.

cf. SELECT는 기본값이 ALL
ex.

SELECT X, Y
FROM Functions
WHERE X = Y
GROUP BY X, Y
HAVING COUNT(*) = 2

UNION

SELECT F1.X, F1.Y
FROM Functions AS F1
     INNER JOIN Functions AS F2 ON F1.X = F2.Y AND F2.X = F1.Y
WHERE F1.X < F1.Y
ORDER BY X
profile
데이터분석 공부로그

0개의 댓글