-
카테고리
-
세부 분야
데이터베이스
-
해결 여부
미해결
테이블 조인(join) 강의에서 마지막 join 예제에 대한 질문이 있습니다.
24.02.01 12:09 작성 24.02.01 12:16 수정 조회수 161
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절의 그런 단점을 해결해준다고 생각해도 되는걸까요??
답변을 작성해보세요.
0
인프런 AI 인턴
2024.02.02
안녕하세요, 인프런 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
절은 지정된 조건에 맞는 데이터를 필터링하는 데 사용됩니다.
강의 내용에 대한 궁금증이 계속되신다면 해당 강의의 수강 전 문의 게시판을 통해 직접 강사님께 문의해 보실 수 있습니다.
도움이 필요하시면 언제든 다시 질문해 주세요. 감사합니다!
답변 1