작성
·
318
·
수정됨
0
좋은 강의 잘 보고 있습니다. 테이블 조인(join) 강의를 보던 중 강의 막바지에 풀어주시는 마지막 join 예제에 궁금증이 생겨 이렇게 질문을 드립니다.
[질문]
만약 E.dept_id가 null인 임직원이 W.proj_id=2001이라는 조건에 TRUE라면, SELECT 절의 D.name AS dept_name를 통해 어떤 D.name 결과를 출력하게 되나요??
해당 임직원에 대한 데이터는 E.name과 E.position만 출력되고 D.name에 대해서는 아무런 결과도 출력하지 않게 되는건가요?
그리고 이전 강의에서는 WHERE 절의 결과는 TRUE가 나와야 해당 SQL 문이 실행된다고 하셨는데, 이번 Join 강의에서는 FROM절에 Null이 와도 SQL문이 잘 실행되는 것을 확인했습니다. 혹시 Join 키워드가 WHERE절의 그런 단점을 해결해준다고 생각해도 되는걸까요??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
김수환님께서 질문하신 테이블 조인(join)에 관한 내용에 대해 답변드리겠습니다.
E.dept_id
가 NULL
인 임직원이 W.proj_id=2001
조건에 TRUE
라면 사용된 조인 타입에 따라 결과가 달라질 수 있습니다. 만약 LEFT JOIN
이 사용되었다면 E
테이블의 데이터는 출력되지만, D
테이블에 해당하는 dept_name
은 NULL
로 출력됩니다. 반면, INNER JOIN
이 사용되었다면 D
테이블에 일치하는 dept_id
가 없기 때문에 해당 임직원에 대한 정보는 결과에 포함되지 않습니다.
JOIN
키워드와 WHERE
절은 다른 목적으로 사용됩니다. JOIN
은 두 테이블을 연결할 때 사용되며, WHERE
절이 FALSE
를 반환하더라도 OUTER JOIN
(LEFT JOIN
, RIGHT JOIN
, FULL OUTER JOIN
)을 사용하면 연결된 테이블의 결과는 여전히 표시될 수 있습니다. 이는 JOIN
이 WHERE
절과는 별개로 동작하기 때문이며, WHERE
절은 지정된 조건에 맞는 데이터를 필터링하는 데 사용됩니다.
강의 내용에 대한 궁금증이 계속되신다면 해당 강의의 수강 전 문의 게시판을 통해 직접 강사님께 문의해 보실 수 있습니다.
도움이 필요하시면 언제든 다시 질문해 주세요. 감사합니다!