INNER JOIN은 여러 테이블을 한번에 출력하고 싶을 때 사용한다.
또한 ON 조건문을 붙여 공통점이 있는 행만 출력할 수 있다.
그러나 공통점이 없는 행도 출력하고 싶다면 LEFT JOIN, RIGHT JOIN, OUTER JOIN 쓰면 된다.
왼쪽 테이블 전체 + 공통된 행 출력 → LEFT JOIN
SELECT *
FROM program
LEFT JOIN teacher
ON program.강사id = teacher.id;
왼쪽 테이블인 "program"의 강사id와 일치하는 정보가 "teacher" 테이블에 없는 경우에는 [NULL]값을 채워준다.
오른쪽 테이블 전체 + 공통된 행 출력 → RIGHT JOIN
SELECT *
FROM program
RIGHT JOIN teacher
ON program.강사id = teacher.id;
LEFT/RIGHT JOIN은 어떨때 사용하나요?
테이블끼리 합칠 때 NULL이 발생하는 부분을 미리 찾고 싶을 때 사용
SELECT *
FROM program
LEFT JOIN teacher
ON program.강사id = teacher.id
WHERE 강사 IS NULL;