首页 > 数据库 > Oracle > 显示来自多个表的数据——JOIN

2、ON
- --99语法
- SELECT EMPNO, ENAME, SAL, EMP.DEPTNO, DNAME
- FROM EMP
- JOIN DEPT
- USING (DEPTNO);
- --92语法
- SELECT EMPNO, ENAME, SAL, EMP.DEPTNO, DNAME
- FROM EMP, DEPT
- WHERE EMP.DEPTNO = DEPT.DEPTNO;
- SELECT EMPNO, ENAME, SAL, EMP.DEPTNO, DNAME
- FROM EMP
- JOIN DEPT
- ON (EMP.DEPTNO = DEPT.DEPTNO);
- --99语法
- SELECT WORKER.LAST_NAME EMP, MANAGER.LAST_NAME MGR
- FROM EMPLOYEES WORKER
- JOIN EMPLOYEES MANAGER
- ON (WORKER.MANAGER_ID = MANAGER.EMPLOYEE_ID);
- --92语法
- SELECT WORKER.LAST_NAME EMP, MANAGER.LAST_NAME MGR
- FROM EMPLOYEES WORKER, EMPLOYEES MANAGER
- WHERE WORKER.MANAGER_ID = MANAGER.EMPLOYEE_ID;
2、LEFT OUTER | RIGHT OUTER 连接
- --查询所有员工以及其部门名字
- --99语法
- SELECT LAST_NAME, DEPARTMENT_NAME
- FROM EMPLOYEES E
- INNER JOIN DEPARTMENTS D
- ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;
- --92语法
- SELECT LAST_NAME, DEPARTMENT_NAME
- FROM EMPLOYEES E, DEPARTMENTS D
- WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID;
3、FULL OUTER 连接
- --哪些部门没有员工,看出部门名字
- --99语法
- SELECT DEPARTMENT_NAME
- FROM EMPLOYEES E
- RIGHT JOIN DEPARTMENTS D
- ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
- WHERE LAST_NAME IS NULL;
- --92语法
- SELECT DEPARTMENT_NAME
- FROM EMPLOYEES E, DEPARTMENTS D
- WHERE E.DEPARTMENT_ID(+) = D.DEPARTMENT_ID
- AND LAST_NAME IS NULL;
- --99
- SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME
- FROM EMPLOYEES E
- FULL OUTER JOIN DEPARTMENTS D
- ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;
- --92
- SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME
- FROM EMPLOYEES E, DEPARTMENTS D
- ON E.DEPARTMENT_ID(+) = D.DEPARTMENT_ID(+);
1、连接条件被遗漏
2、连接条件不正确
3、所有表中的所有行互相连接
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24851054/viewspace-2145429/ ,如需转载,请注明出处,否则将追究法律责任。