BigQuery 입문
Matthew Forrest
Field CTO
INNER JOIN: 두 테이블 모두에 값이 있음.
LEFT JOIN: 왼쪽 테이블의 모든 행, 오른쪽과 일치 항목 결합.
RIGHT JOIN: 오른쪽 테이블의 모든 행, 왼쪽과 일치 항목 결합.
FULL JOIN: 양쪽 테이블의 모든 행, 일치/비일치 모두 포함.
CROSS JOIN: 양쪽 테이블의 모든 행을 서로 모두 매칭.

Customers: 왼쪽 테이블
Orders: 오른쪽 테이블
INNER JOIN: 고객과 주문 매칭
LEFT JOIN: 주문이 없어도 모든 고객 표시
RIGHT JOIN: 고객 ID가 없어도 모든 주문 표시
FULL JOIN: 상호작용이 없어도 모든 고객과 모든 주문 표시
CROSS JOIN: 조건 없이 모든 주문을 모든 고객과 매칭
SELECT
c.customer_id, s.product_name
FROM customers c
-- The INNER keyword is optional
JOIN sales_data s
ON c.customer_id = s.customer_id;
| customer_id | product_name |
|-------------|----------------------|
| 1 | Bluetooth Headphones |
| 2 | Running Shoes |
SELECT
c.customer_id, s.product_name
FROM customers c
LEFT JOIN sales_data s
ON c.customer_id = s.customer_id;
| customer_id | product_name |
|-------------|----------------------|
| 1 | Bluetooth Headphones |
| 2 | Running Shoes |
| 3 | null |
SELECT
c.customer_id, s.product_name
FROM customers c
RIGHT JOIN sales_data s
ON c.customer_id = s.customer_id;
| customer_id | product_name |
|-------------|----------------------|
| 1 | Bluetooth Headphones |
| 2 | Running Shoes |
| null | External Microphone |
SELECT
c.customer_id, s.product_name
FROM customers c
OUTER JOIN sales_data s
ON c.customer_id = s.customer_id;
| customer_id | product_name |
|-------------|----------------------|
| 1 | Bluetooth Headphones |
| 2 | Running Shoes |
| 3 | null |
| null | External Microphone |
SELECT
c.customer_id,
s.product_name,
-- Adding table names separated
-- by a comma is a CROSS JOIN
-- Order is determined by the
-- left table, here "customers"
FROM customers c, sales_data s;
| customer_id | product_name |
|-------------|----------------------|
| 1 | Bluetooth Headphones |
| 1 | null |
| 2 | Bluetooth Headphones |
| 2 | null |
| 3 | null |
| 3 | Bluetooth Headphones |
SELECT
c.customer_id,
payments.method
FROM customers c,
UNNEST(
customers.payment_methods
) payments;
| customer_id | product_name |
|-------------|--------------|
| 1 | Visa |
| 1 | Mastercard |
| 1 | Venmo |
| 1 | Paypal |
| 2 | Amex |
| 2 | Visa |
BigQuery 입문