(SELECT ename FROM EMP WHERE empno = mgr)
There are no records in EMP that meet these criteria.
You need to team up to get this attitude.
SELECT e.ename AS Employee, e.empno, m.ename AS Manager, m.empno FROM EMP AS e LEFT OUTER JOIN EMP AS m ON e.mgr =m.empno;
EDIT:
The answer you have chosen will not be listed by your president, because it is an internal connection. I think that you will return when you find out that your result does not correspond to your task (I suspect). Here is the actual test case:
> select * from emp; empno | ename | job | deptno | mgr -------+-------+-----------+--------+------ 7839 | king | president | 10 | 7698 | blake | manager | 30 | 7839 (2 rows) > SELECT e.ename employee, e.empno, m.ename manager, m.empno FROM emp AS e LEFT OUTER JOIN emp AS m ON e.mgr =m.empno; employee | empno | manager | empno ----------+-------+---------+------- king | 7839 | | blake | 7698 | king | 7839 (2 rows)
The difference is that the outer join returns all rows. The inner join will create the following:
> SELECT e.ename, e.empno, m.ename as manager, e.mgr FROM emp e, emp m WHERE e.mgr = m.empno; ename | empno | manager | mgr -------+-------+---------+------ blake | 7698 | king | 7839 (1 row)
Brian roach
source share