SQL

JOIN에 대하여 OLD AND NEW

초코너무조코 2025. 1. 23. 16:42
728x90

 


1. 지금까지 쓰신 방식

SELECT e.name, d.name
FROM s_emp e, s_dept d
WHERE d.region_id = 1;

이 방식의 특징

  • FROM 절에서 여러 테이블(S_EMP, S_DEPT)을 쉼표로 나열해요.
  • WHERE 절을 이용해서 두 테이블을 연결해요.

이 방식은 전통적인 구식 JOIN 방식이에요. 지금도 사용할 수는 있지만, 현대적인 SQL에서는 JOIN 키워드를 사용하는 방식으로 점점 바뀌고 있어요.


2. JOIN 키워드 방식

같은 문제를 JOIN 키워드를 사용해서 작성하면 이렇게 돼요:

SELECT e.name, d.name
FROM s_emp e
JOIN s_dept d
ON e.dept_id = d.dept_id -- 두 테이블을 연결하는 조건
WHERE d.region_id = 1;   -- 서울 지역

차이점:

  • JOIN 키워드를 사용해서 두 테이블을 연결.
  • ON 절에서 연결 조건(두 테이블의 공통점)을 명시해요.

3. 두 방식의 차이점: WHY "JOIN"?

사실 결과는 완전히 동일합니다. 하지만 JOIN 방식이 더 명확하고 직관적이에요.

(1) 가독성

  • 구식 방식(FROM 테이블1, 테이블2)은 테이블이 많아질수록 어떤 조건으로 연결하는지 파악하기 어렵다는 단점이 있어요.
  • JOIN 방식은 어떤 테이블이 어떻게 연결되는지 ON 절에 명확히 표시되기 때문에 가독성이 훨씬 좋습니다.

(2) 복잡한 조건 처리

현대적인 SQL에서는 INNER JOIN, LEFT JOIN, RIGHT JOIN 등 다양한 JOIN 형태를 사용할 수 있어요.
이런 기능들은 JOIN 키워드 방식에서 더 잘 동작하고 표현이 쉬워요.


4. "JOIN"으로 이해를 정리하자!

아까 쓰셨던 코드

SELECT e.name, d.name
FROM s_emp e, s_dept d
WHERE d.region_id = 1;

여기서 사실 s_emp와 s_dept가 어떻게 연결되는지 명시되지 않았어요.
그런데 JOIN을 사용하면

SELECT e.name, d.name
FROM s_emp e
JOIN s_dept d
ON e.dept_id = d.dept_id
WHERE d.region_id = 1;
  • ON e.dept_id = d.dept_id로 두 테이블을 연결하는 조건이 확실히 드러나요.
  • 그래서 JOIN을 사용하면 더 명확하고 오류를 줄이기 쉬워요.

5. 언제 JOIN 없이 써도 되나요?

JOIN 키워드를 안 쓰고도 간단한 경우라면 여전히 괜찮아요:

  • 테이블이 적고
  • 연결 조건이 복잡하지 않으면

하지만 여러 테이블을 연결하거나 복잡한 쿼리를 작성해야 할 때는 JOIN을 쓰는 게 좋아요!


728x90