인프런 커뮤니티 질문&답변

김수환님의 프로필 이미지
김수환

작성한 질문수

시니어 백엔드 개발자가 알려주는 데이터베이스 개론 & SQL

테이블 조인 (join)

테이블 조인(join) 강의에서 마지막 join 예제에 대한 질문이 있습니다.

작성

·

319

·

수정됨

0

좋은 강의 잘 보고 있습니다. 테이블 조인(join) 강의를 보던 중 강의 막바지에 풀어주시는 마지막 join 예제에 궁금증이 생겨 이렇게 질문을 드립니다.

 

[질문]

  1. 만약 E.dept_id가 null인 임직원이 W.proj_id=2001이라는 조건에 TRUE라면, SELECT 절의 D.name AS dept_name를 통해 어떤 D.name 결과를 출력하게 되나요??

    해당 임직원에 대한 데이터는 E.name과 E.position만 출력되고 D.name에 대해서는 아무런 결과도 출력하지 않게 되는건가요?

  2. 그리고 이전 강의에서는 WHERE 절의 결과는 TRUE가 나와야 해당 SQL 문이 실행된다고 하셨는데, 이번 Join 강의에서는 FROM절에 Null이 와도 SQL문이 잘 실행되는 것을 확인했습니다. 혹시 Join 키워드가 WHERE절의 그런 단점을 해결해준다고 생각해도 되는걸까요??

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

김수환님께서 질문하신 테이블 조인(join)에 관한 내용에 대해 답변드리겠습니다.

  1. E.dept_idNULL인 임직원이 W.proj_id=2001 조건에 TRUE라면 사용된 조인 타입에 따라 결과가 달라질 수 있습니다. 만약 LEFT JOIN이 사용되었다면 E 테이블의 데이터는 출력되지만, D 테이블에 해당하는 dept_nameNULL로 출력됩니다. 반면, INNER JOIN이 사용되었다면 D 테이블에 일치하는 dept_id가 없기 때문에 해당 임직원에 대한 정보는 결과에 포함되지 않습니다.

  2. JOIN 키워드와 WHERE 절은 다른 목적으로 사용됩니다. JOIN은 두 테이블을 연결할 때 사용되며, WHERE 절이 FALSE를 반환하더라도 OUTER JOIN(LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN)을 사용하면 연결된 테이블의 결과는 여전히 표시될 수 있습니다. 이는 JOINWHERE 절과는 별개로 동작하기 때문이며, WHERE 절은 지정된 조건에 맞는 데이터를 필터링하는 데 사용됩니다.

강의 내용에 대한 궁금증이 계속되신다면 해당 강의의 수강 전 문의 게시판을 통해 직접 강사님께 문의해 보실 수 있습니다.

도움이 필요하시면 언제든 다시 질문해 주세요. 감사합니다!

김수환님의 프로필 이미지
김수환

작성한 질문수

질문하기