17/12/5 다중 테이블 연결
17/12/5 다중 테이블 연결
join on 문
select * from emp
join dept on emp.deptno = dept.deptno
1. on은 연결 조건과 다른 검색 조건을 분리하고 다른 검색 조건은 WHERE 문장에 쓴다.2. 코드의 가독성을 높인다.
외부 연결
- 오른쪽 외부 연결: 오른쪽 테이블을 위주로 하고 오른쪽 테이블의 내용을 모두 보존합니다.
select emp.ename, dept.deptno
from emp right join dept on emp.deptno = dept.deptno
- 왼쪽 바깥쪽 연결은 동일합니다.
- 전체 외부 연결(full join): 좌우 두 개의 시계가 위주이고 두 시계의 내용이 모두 표시됩니다.
자체 연결
열: 모든 직원의 상급자를 조회한다.
select worker.ename|' '| manager.ename
from emp worker
join emp manager on woker.mgr = manager.empno
확장: 다중 테이블 연결은 두 개의 테이블 또는 여러 개의 테이블 사이에서 할 수 있습니다.
연습: 1.ON 자구를 사용하여 CHICAGO에서 일하는 직원의 이름, 부서명, 근무지를 표시합니다.
SELECT EMP.ENAME, DEPT.DNAME, DEPT.LOC, SALGRADE.GRADE
FROM EMP
join DEPT on EMP.DEPTNO = DEPT.DEPTNO
join SALGRADE on EMP.sal BETWEEN losal AND hisal
WHERE DEPT.LOC in ('CHICAGO')
2. 왼쪽 연결을 사용하여 각 직원의 이름, 매니저의 이름을 조회하고 매니저가 없는 KING도 표시한다.
select woker.ename, manager.ename
from emp woker
left join emp manager on woker.mgr = manager.empno
3. 오른쪽 연결을 사용하여 각 직원의 이름, 매니저의 이름을 조회하고 매니저가 없는 KING도 표시한다.이치에 맞다직원 SMITH의 이름, 부서 이름, 직접 상위 이름을 표시합니다.
SELECT WOKER.ename, DEPT.DNAME, manager.ename
FROM emp woker
join dept ON woker.deptno = dept.deptno
join emp manager ON woker.mgr = manager.empno
WHERE woker.ename in ('SMITH')
5. 직원 이름, 부서 이름, 임금, 임금 등급을 표시하고 임금 등급이 4보다 크도록 요구한다.
SELECT EMP.ENAME, DEPT.DNAME, EMP.SAL, SALGRADE.GRADE
FROM EMP
join SALGRADE ON EMP.SAL BETWEEN LOSAL and HISAL
join DEPT ON DEPT.deptno = EMP.deptno
WHERE SALGRADE.GRADE > 4
6. 직원 KING과 FORD가 관리하는 직원 이름 및 관리자 이름을 표시합니다.
SELECT emp.ENAME, MANAGER.ENAME, woker.ename
FROM EMP
LEFT JOIN EMP manager ON MANAGER.empno = EMP.mgr
LEFT JOIN EMP woker ON woker.mgr = EMP.empno
WHERE EMP.ENAME in ('KING', 'FORD')
7. 직원의 이름, 참가 근무 시간, 사장 이름, 참가 근무 시간, 참가 근무 시간이 사장보다 이르도록 요구한다.
select woker.ename, woker.hiredate, manager.ename, manager.hiredate
from emp woker
join emp manager on woker.mgr = manager.empno
where woker.hiredate < manager.hiredate
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.