#sql #oracle
Вопрос:
EMPNO ENAME JOB ASSIGNED_MANAGER 7839 KING PRESIDENT ----- 7698 BLAKE MANAGER 7839 7782 CLARK MANAGER 7839 7566 JONES MANAGER 7839 7788 SCOTT ANALYST 7566 7902 FORD ANALYST 7566 7369 SMITH CLERK 7902 7499 ALLEN SALESMAN 7698 7521 WARD SALESMAN 7698 7654 MARTIN SALESMAN 7698 7844 TURNER SALESMAN 7698 7876 ADAMS CLERK 7788 7900 JAMES CLERK 7698 7934 MILLER CLERK 7782
Комментарии:
1. Пожалуйста, покажите вашу текущую попытку и опишите, в чем проблема с ней.
Ответ №1:
Это самостоятельное внешнее соединение:
- самостоятельно, чтобы вы использовали одну и ту же
emp
таблицу () дважды: один раз для выборки сотрудников, а другой раз для выборки имен менеджеров - внешний, потому что есть сотрудники, у которых нет менеджеров
SQLgt; select e.empno, e.ename, e.job, m.ename 2 from emp e left join emp m on e.mgr = m.empno; EMPNO ENAME JOB ENAME ---------- ---------- --------- ---------- 7902 FORD ANALYST JONES 7788 SCOTT ANALYST JONES 7900 JAMES CLERK BLAKE 7844 TURNER SALESMAN BLAKE 7654 MARTIN SALESMAN BLAKE 7521 WARD SALESMAN BLAKE 7499 ALLEN SALESMAN BLAKE 7934 MILLER CLERK CLARK 7876 ADAMS CLERK SCOTT 7782 CLARK MANAGER KING 7698 BLAKE MANAGER KING 7566 JONES MANAGER KING 7369 SMITH CLERK FORD 7839 KING PRESIDENT 14 rows selected. SQLgt;