SUMSEN

Oracle&Sql爱好者,用友NC管理员

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

这是员工表,这里有员工id,员工名称,领导id,比较特殊是这里领导也是人,因此没有领导名字字段。

我本来的sql是:

 select last_name,(select last from employees where employee_id=manager_id) as manager_name from employee;
查询没错,可是manager_name是空,我的思路是:

通过select employee_id,manager_id from employees,查询,可以得到这里的manager_id,然后我再select name=manger_id,不就行了

被告知:

修改这个sql:

select  name,
(select  name from employees m where m.employee_id=w.manager_id) mgr_name 
from employees w 

注意这里()内部m.employee_id=w.manager_id,不可以是

 

或者老师的内连接写法:

select a.name,b.name from employees a,employees b where a.manager_id=b.employee_id(+)

这里的+就是left join,不加上就没有king

select a.name,b.name from employees a left join employees b
 on a.manager_id=b.employee_id 

 

 

posted on 2012-11-24 00:14  sumsen  阅读(470)  评论(0编辑  收藏  举报