SQL 조인은 두 개 혹은 그 이상의 테이블들을 공통 필드를 가지고 머지하는데 사용된다. 이는 스타 스키마로 구성된 테이블들로 분산되어 있던 정보를 통합하는데 사용된다.
SELECT A.*, B.*
FROM raw_data.table1 A
___JOIN raw_data.table2 B ON A.key1 = B.key1 and A.key2 = B.key2
WHERE A.ts >= '2019-01-01'
%%sql
DROP TABLE IF EXISTS raw_data.vital;
CREATE TABLE raw_data.vital (
UserID int,
VitalID int,
Date date,
Weight int
);
INSERT INTO raw_data.vital VALUES
(100, 1, '2020-01-01', 75),
(100, 3, '2020-01-02', 78),
(101, 2, '2020-01-01', 90),
(101, 4, '2020-01-02', 95);
%%sql
DROP TABLE IF EXISTS raw_data.alert;
CREATE TABLE raw_data.alert (
AlertID int,
VitalID int,
AlertType varchar(32),
Date date,
UserID int
);
INSERT INTO raw_data.alert VALUES
(1, 4, 'WeightIncrease', '2020-01-01', 101),
(2, NULL, 'MissingVital', '2020-01-04', 100),
(3, NULL, 'MissingVital', '2020-01-04', 101);
%%sql
SELECT * FROM raw_data.Vital v
JOIN raw_data.Alert a ON v.vitalID = a.vitalID;
%%sql
SELECT * FROM raw_data.Vital v
LEFT JOIN raw_data.Alert a ON v.vitalID = a.vitalID;
%%sql
SELECT * FROM raw_data.Vital v
FULL JOIN raw_data.Alert a ON v.vitalID = a.vitalID;
%%sql
SELECT * FROM raw_data.Vital v1
JOIN raw_data.Vital v2 ON v1.vitalID = v2.vitalID;
%%sql
SELECT * FROM raw_data.Vital v
CROSS JOIN raw_data.Alert a;