[SQL] 데이터 조인 - SELF JOIN

·2025년 7월 7일
0

SQL

목록 보기
76/126

🔸 SELF JOIN

자기 자신과 조인하는 조인 문법

문제1. 사원번호, 이름, 관리자 번호를 출력하시오

select empno, ename, mgr
 from emp;

문제2. 사원 이름, 관리자의 이름(직속상사의 이름) 을 출력하시오

select 사원.ename as 사원이름, 관리자.ename as "관리자 이름"
 from emp 사원, emp 관리자
 where 사원.mgr = 관리자.empno;

문제3. 위의 결과를 다시 출력하는데 사원이름, 사원월급, 관리자 이름, 관리자 월급을 출력하시오

select 사원.ename as 사원이름, 사원.sal as "사원 월급", 관리자.ename as "관리자 이름", 관리자.sal as "관리자 월급"
 from emp 사원, emp 관리자
 where 사원.mgr = 관리자.empno;

문제4. (오라클 정규 교재 난이도 상) 위의 결과를 다시 출력하는데 사원의 월급이 관리자의 월급보다 더 큰 사원들만 출력하시오

select 사원.ename as 사원이름, 사원.sal as "사원 월급", 관리자.ename as "관리자 이름", 관리자.sal as "관리자 월급"
 from emp 사원, emp 관리자
 where 사원.mgr = 관리자.empno and 사원.sal > 관리자.sal;

문제5. 관리자 보다 먼저 입사한 사원들의 사원 이름, 사원 입사일, 관리자 이름과 관리자 입사일을 출력하시오

select 사원.ename 사원이름, 사원.hiredate "사원 입사일", 관리자.ename "관리자 이름", 관리자.hiredate "관리자 입사일"
 from emp 사원, emp 관리자
 where 사원.mgr = 관리자.empno
  and 사원.hiredate < 관리자.hiredate;
  
-- 날짜 출력형식 변경  
select 사원.ename 사원이름, to_char(사원.hiredate, 'RRRR-MM-DD') "사원 입사일", 관리자.ename "관리자 이름", to_char(관리자.hiredate, 'RRRR-MM-DD') "관리자 입사일"
 from emp 사원, emp 관리자
 where 사원.mgr = 관리자.empno
  and 사원.hiredate < 관리자.hiredate;

0개의 댓글