SELECT (줘)
WHERE (조건에 맞는 절로)
GROUP BY (묶어서)
-- 국가별 고객수가 10명 이상인 나라만 조회
SELECT Country, Count(CustomerID)
FROM Customers
GROUP BY Country
HAVING (Count(CustomerID) >= 10)
JOIN (얘랑 엮어서)
-- 고객 테이블과 주문 테이블 중
-- 고객아이디가 일치하는 정보를 합쳐 모두 조회
SELECT C.CustomerID, OrderID
FROM Customers AS C
INNER JOIN Orders AS O
ON O.CustomerID = C.CustomerID
-- 고객 테이블과 주문 테이블 중 고객아이디가 일치하는 정보를 합치는데 고객 정보는 냅 두고 가져올 것
SELECT C.CustomerID, OrderID
FROM Customers AS C
LEFT JOIN Orders AS O
ON O.CustomerID = C.CustomerID
SUBQUERY
-- 고객아이디 기준 배송아이디별 배송 횟수 구하기
SELECT
C.CustomerID
ifnull(o1.cnt, 0) AS cnt1,
ifnull(o2.cnt, 0) AS cnt2,
ifnull(o3.cnt, 0) AS cnt3
FROM Customers AS C
LEFT JOIN (
select CustomerID, count(orderid) AS cnt
from order
where shipperid = 1
group by CustomerID
) as o1
on o1.CustomerID = C.CustomerID
LEFT JOIN (
select CustomerID, count(orderid) AS cnt
from order
where shipperid = 2
group by CustomerID
) AS O2
ON O2.CustomerID = C.CustomerID
LEFT JOIN (
select CustomerID, count(orderid) AS cnt
from order
where shipperid = 3
group by CustomerID
) as o3.CustomerID = C.CustomerID
Reference