SELECT *
FROM orders
JOIN customers
ON order.customer_id = customer_id;
SELECT COUNT(*)
FROM products;
SELECT COUNT(*)
FROM drinks;
SELECT COUNT(*)
FROM products
JOIN drinks
ON product.id = drink.id;
-- product에 있고, drink에도 없어도 null처리 되는 제품들
SELECT *
FROM product
LEFT JOIN drink
ON product.id = drink.id;
-- 어떤 product들이 drink 테이블에 없는지 찾기
SELECT *
FROM products
LEFT JOIN drink
ON product.id = drink.id
WHERE drink.id IS NULL;
-> 해당 제품들은 drink 테이블에 없다는 것을 판별할 수 있다
🔑 가장 일반적인 JOIN 유형은 한 테이블의 외래키와 다른 테이블의 프라이머리키를 결합하는 것이다.
-- PRIMARY, FOREIGN KEY를 활용해서 JOIN하기
SELECT *
FROM products
JOIN orders
ON product.id = orders.product_id;
--
SELECT drink.type,
products.flavor
FROM drinks
CROSS JOIN products;
SELECT *
FROM drinks
UNION
SELECT *
FROM products
previous results
이라는 alias으로 reference한다-- customers의 아이디값을 준다. 하지만 우리는 아이디보다 customers의 이름과 정보를 원한다!
SELECT customer_id,
COUNT(subscription_id) AS 'subscriptions'
FROM orders
GROUP BY customer_id;
-- customers 테이블과 JOIN 해서 기타 정보를 가지고 온다
WITH previous_results AS (
SELECT customer_id,
COUNT(subscription_id) AS 'subscriptions'
FROM orders
GROUP BY customer_id;
)
SELECT *
FROM previous_results
JOIN customers
ON _____ = _____;