티스토리 뷰
Table 합치기(JOIN)
- 조건이 참이면 다른 table의 행과 결합
SELECT * -- 작성 될 column 고르기(table_name.column(name))
FROM table_name1
JOIN table_name2
ON table_name1.column(name) -- 공통된 column(name)
= table_name2.column(name);
-- ex)
SELECT *
FROM orders
JOIN subscriptions
ON orders.subscription_id
= subscriptions.subscription_id
WHERE subscriptions.description = 'Fashion Magazine'; -- 추가 조건
Left Join
- FROM table(A)의 모든 행은 유지하지만 JOIN table(B)는 A에 없는 행을 생략한다.
SELECT *
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column(name) = table_name2.column(name);
-- ex)
SELECT *
FROM orders
LEFT JOIN subscriptions
ON orders.subscription_id
= subscriptions.subscription_id
Primary Key & Foreign Key
- Primary Key(기본 키): 각 table에서 각 행을 고유하게 식별하는 열
- Foreign Key: Primary Key가 다른 table에 있을 때
SELECT *
FROM table1
JOIN table2
ON table1.column1(Primary Key) = table2.column2(Foregin Key);
-- ex)
SELECT *
FROM class
JOIN student
ON class.id = student.class_id;
Cross Join
- 한 테이블의 모든 행을 다른 테이블의 모든 행과 결합(모든 조합)
SELECT *
FROM table1
CROSS JOIN table2;
-- ex)
SELECT month,
COUNT(*) AS 'subscribers'
FROM newspaper
CROSS JOIN months
WHERE start_month <= month
AND end_month >= month
GROUP BY month;
table을 다른 table에 쌓기(UNION)
- 한 data 세트를 다른 data 세트 위에 쌓는다.
SELECT *
FROM table1
UNION
SELECT *
FROM table2;
-- ex)
SELECT *
FROM newspaper
UNION
SELECT *
FROM online;
table을 결합하고 별도의 쿼리를 수행(WITH)
- WITH 쿼리를 가지고 새 쿼리를 작성한다.
- 최종 쿼리에서 사용할 수 있는 하나 이상의 임시 테이블을 정의한다.
WITH query(name) AS (
SELECT ...
...
...
)
SELECT *
FROM query(name)
JOIN query2(name)
ON _____ = _____;
-- ex)
WITH previous_query AS (
SELECT customer_id,
COUNT(subscription_id) AS 'subscriptions'
FROM orders
GROUP BY customer_id
)
SELECT customers.customer_name,
previous_query.subscriptions
FROM previous_query
JOIN customers
ON previous_query.customer_id
= customers.customer_id;
반응형
'Tip and Error > ETC' 카테고리의 다른 글
수학 기호 (0) | 2021.04.05 |
---|---|
VPN을 사용해야 할 6가지 이유 (Jim Martin | PC Advisor) (0) | 2021.03.25 |
4. Aggregates (0) | 2021.03.04 |
3. Command (2) (0) | 2021.03.02 |
2. Command (1) (0) | 2021.03.02 |
공지사항
최근에 올라온 글