Outer join은 짝 없는 row도 살려
LEFT JOIN은 왼쪽 테이블의 row를 전부 돌려주고, 짝이 없으면 오른쪽 컬럼을 NULL로 채워. join이 짝을 못 찾더라도 한쪽 row는 다 살려두고 싶을 때 쓰는 거야.
SQLite는 LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN을 다 지원해. 뒤의 둘은 2022년 3.39에 들어왔어. 그래서 옛날 코드나 오래된 Stack Overflow 답변은 LEFT JOIN 두 개를 UNION으로 붙여 흉내 내지.
Tip:
LEFT JOIN ... WHERE rhs.col IS NULL이 'A에는 있고 B에는 없는 row'를 찾는 정통 패턴이야. 같은 뜻인 NOT EXISTS 형태보다 눈에 자연스럽게 읽혀.