2025. 9. 29. 17:32ㆍTIL
1. Subquery
Subquery는 여러 번의 연산을 수행해야 할 때, 조건문에 연산 결과를 사용해야 할 때, 조건에 query 결과를 사용하고 싶을 때 사용할 수 있다.
subquery문의 기본 구조는 다음과 같다.
SELECT column1, special_column
FROM
(
SELECT column1, column2 as special_column
FROM table1 #Subquery문 작성
) Subquery #Alias 지정
이때 Subquery문에서 select하지 않는 column은 본 query에서도 불러올 수 없으니 유의한다.
2. JOIN
JOIN은 두 table을 하나의 table처럼 연결하고 싶을 때 사용할 수 있는 명령어이다.
두 테이블 간에 연결할 수 있는 공통된 column들이 존재할 때 join을 이용해 연결할 수 있다.
JOIN은 그냥 써도 되지만, 대표적으로 LEFT JOIN과 INNER JOIN 2가지가 있는데,
LEFT JOIN은 공통 column을 기준으로 하나의 테이블에 값이 없더라도 모두 조회하는 것을 의미한다.
반대로 INNER JOIN은 공통 column을 기준으로 두 테이블 모두에 있는 값만 조회한다.
| id | name | food |
| 1 | John | Bread |
| 2 | Lee | Hotdog |
| 3 | James | Chicken |
| id | tel | address |
| 1 | 010-1234-1234 | Seoul |
| 2 | 010-5678-5678 | Incheon |
| 3 |
위와 같은 두 개의 table이 있을 때, id라는 column을 기준으로 join을 할 수 있다. 두 table을 LEFT JOIN한 결과와 INNER JOIN한 결과를 비교해보면,
LEFT JOIN 시,
| id | name | food | tel | address |
| 1 | John | Bread | 010-1234-1234 | Seoul |
| 2 | Lee | Hotdog | 010-5678-5678 | Incheon |
| 3 | James | Chicken | [NULL] | [NULL] |
INNER JOIN 시,
| id | name | food | tel | address |
| 1 | John | Bread | 010-1234-1234 | Seoul |
| 2 | Lee | Hotdog | 010-5678-5678 | Incheon |
이런 차이가 발생한다. LEFT JOIN은 값이 없는 column이 있어도 NULL로 표현하면서 모두 결합하는 반면, INNER JOIN은 값이 없는 경우 아예 그 row를 결합하지 않는다.
JOIN의 기본 구조는 다음과 같다.
#LEFT JOIN
SELECT column1
FROM table1 a LEFT JOIN table2 b ON a.공통컬럼명=b.공통컬럼명
#INNER JOIN
SELECT column1
FROM table1 a INNER JOIN table2 b ON a.공통컬럼명=b.공통컬럼명
만약 3개 이상의 column을 JOIN해야 하는 경우 다음과 같이 쓸 수 있다.
SELECT column1
FROM table1 a
JOIN table2 b ON a.공통컬럼명=b.공통컬럼명
JOIN table3 c ON a.공통컬럼명=c.공통컬럼명
(아직 제대로 배우지 않아서 정확히는 모르겠다.)
JOIN을 해준 이후는 JOIN 시 사용한 alias를 이용해 column을 호출한다.
SELECT
a.column1,
b.column2
FROM table1 a INNER JOIN table2 b ON a.공통컬럼명=b.공통컬럼명'TIL' 카테고리의 다른 글
| 251001_Python Quest 해결하기 (0) | 2025.10.01 |
|---|---|
| 250930_SQL_실무에 적용할 수 있는 SQL 기술 (0) | 2025.09.30 |
| 250926_SQL 데이터 가공하기 (0) | 2025.09.26 |
| 250925_Python 알아보기 (0) | 2025.09.25 |
| 250924_SQL 데이터 계산하기 (0) | 2025.09.24 |