테이블 합치기 (JOIN)
실전에서는 데이터가 여러 테이블에 나뉘어 있습니다. 그래서 JOIN으로 테이블을 합칩니다.
예를 들어, users 테이블과 orders 테이블이 있다고 해봅시다.
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
user_id INTEGER,
item TEXT
);
user_id는 users 테이블의 id와 연결되는 값입니다. 이렇게 다른 테이블을 가리키는 열을 **외래 키(Foreign Key)**라고 부르는데, 자세한 내용은 다음 코스에서 다루겠습니다.
이제 두 테이블을 합쳐봅시다.
SELECT users.name, orders.item
FROM users
JOIN orders ON users.id = orders.user_id;
이건 이렇게 읽으면 됩니다:
users와 orders를 합쳐서,
users.id와 orders.user_id가 같은 것만 가져와라
LEFT JOIN
SELECT users.name, orders.item
FROM users
LEFT JOIN orders ON users.id = orders.user_id;
LEFT JOIN은 users를 기준으로 전부 가져오고,
orders에 없으면 NULL(비어 있는 값)로 채웁니다.
NULL은 “아무 값도 없다”는 뜻입니다. 0이나 빈 문자열("")과는 다른, 말 그대로 아무것도 없는 상태를 의미합니다.
이제 데이터를 묶어서 집계해봅시다.