-------<내가 못 풀었던 문제들 REVIEW>--------
이 문제를 풀기 앞서서 항상 생각해야하는 것
1. 어떤 걸 조회해야하는가?
2. 테이블끼리 연관 지을 수 있는 게 무엇인가?
#25.사원명과 부서명
어떤 걸 조회해야하는가? 사원명과 부서명을 조회해야한다.
어떤 테이블을 메인으로 두고 어떤 테이블을 서브로 두고 일을 할 것인가?
SELECT e.ename , d.dname # 내가 조회해야하는 것은 사원명과 부서명.
(테이블. 칼럼)----> 이런
FROM emp e
INNER JOIN dept d
ON e.deptno = d.deptno 조인 조건 즉 테이블끼리 공통된 걸 묶는다라고 생각하면 되지 않을까?
WHERE e.deptno = d.deptno; 검색 조건 -------> #사원명과 부서명을 조회 조건을 이렇게 같게 해야 하지 않을까?
이름, 월급여, 월급여등급
#25. 이름,월급여,월급여등급을 조회하시오. (hint : inner join, between)
어떤 걸 조회해야하는가? 이름, 월급여, 월급여등급
조회해야 하는 칼럼이 어떤 테이블에 속해있는지 살펴봐야지?
self join 이 놈은 뭐하는 놈인가?
자기 자신을 조인하는 것이다~
여기서 주의할 점은 자기 자신을 조인하는 것이기 때문에
별명을 잊지 말자!!!!
#27. 이름,직속상사이름을 조회하시오. (hint : self join)
어떤 걸 조회해야하는가? 이름, 직속상사이름
#27. 이름,직속상사이름을 조회하시오. (hint : self join)
SELECT e1.ename ,e2.ename #e1과 e2는 테이블을 식별하기 위해서 가명을 사용한다.
FROM emp e1 #
INNER JOIN emp e2
ON e1.mgr = e2.empno;
#why e1의 관리자 번호와 e2의 사원번호를 사용한 이유는?
직속상사이름을 알기 위해서는 e1의 관리자의 번호로 통해서 e2의 사원번호
를 통해서 직속상사의 이름을 파악할 수 있기 때문에...!
outer join
#left , right , full
테이블에 따라서 테이블 a와 b가 있다고 쳐보자
거기에서 left outer join이라고 한다면 테이블 a에 맞춰서 outer join이 되어
테이블 a에 없는 값은 나오지 않는다.
right outer join이 되었다면 테이블 b에 맞춰져서 outer join이 되어
테이블 b에 없는 값은 나오지 않는다
밴 다이어그램이 그려봤을 때 어떻게 나올까?
온전한 테이블 a가 나오고
온전한 테이블 b가 나온다.