-
[SQL 공부] LEFT JOIN[공부] 프로그래밍/DB 2023. 4. 10. 15:34
LEFT JOIN = LEFT OUTER JOIN
-> FROM의 테이블을 왼쪽으로 정렬하여 전부 표시한다.
① posts 테이블
idbodyuser_id1Hello32Hi13Good2② users 테이블
idname1taro2jiro3hanako4saito위의 두 테이블을 LEFT 조인을 할 경우
SELECT * FROM users LEFT JOIN posts ON users.id = posts.user_id
실행결과는
idnameidbodyuser_id3hanako1Hello31jiro2Hi12taro3Good24saitoNULLNULLNULLWITH tmp AS ( SELECT top 100 ss_account_id, SUM(revenue) AS sum_revenue, SUM(clicks) AS sum_clicks, SUM(impressions) AS sum_impressions FROM 테이블명1 WHERE log_date BETWEEN '해당날짜' AND '해당날짜' GROUP BY ss_account_id ORDER BY sum_revenue DESC ) SELECT a.ss_account_id, b.account_name, a.sum_revenue AS rev, a.sum_clicks AS clicks, a.sum_impressions AS impressions FROM tmp AS a LEFT JOIN 테이블명2 AS b ON a.ss_account_id = b.ss_account_id ;
WITH tmp1 AS ( SELECT log_date, account_id, SUM(revenue) AS sum_revenue, SUM(clicks) AS sum_clicks, SUM(impressions) AS sum_impressions FROM 테이블명1 WHERE log_date BETWEEN '해당날짜' AND '해당날짜' GROUP BY 1,2 ) , tmp2 AS ( SELECT log_date, account_id, SUM(all_conversions) AS sum_conversions FROM 테이블명2 WHERE nonpayment_flag = 1 AND log_date BETWEEN '해당날짜' AND '해당날짜' GROUP BY 1,2 ) , tmp3 AS ( SELECT account_id, account_name FROM 테이블명3 GROUP by 1,2 ) SELECT TOP 100 c.account_id, c.account_name, a.sum_revenue AS rev, a.sum_clicks AS clicks, a.sum_impressions AS impressions, b.sum_conversions AS conversion FROM tmp1 AS a LEFT JOIN tmp2 AS b ON a.account_id = b.account_id LEFT JOIN tmp3 AS c ON a.account_id = c.account_id ORDER BY rev DESC ;
'[공부] 프로그래밍 > DB' 카테고리의 다른 글
[구축] MongoDB 다운로드 : Homebrew (0) 2023.04.14 [SQL 공부] INNER JOIN (0) 2023.04.12 [구축] MariaDB 다운로드 : Homebrew (0) 2023.04.10