새소식

Database/MySQL

[MySQL] LEFT JOIN / RIGHT JOIN

  • -

INNER JOIN은 여러 테이블을 한번에 출력하고 싶을 때 사용한다.

또한 ON 조건문을 붙여 공통점이 있는 행만 출력할 수 있다.

 

그러나 공통점이 없는 행도 출력하고 싶다면 LEFT JOIN, RIGHT JOIN, OUTER JOIN 쓰면 된다.

 

 

 

왼쪽 테이블 전체 + 공통된 행 출력 → LEFT JOIN

program 테이블과 teacher 테이블

 

 

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;

 

 

 

 

728x90
Contents