select a.ename,(select ename from emp b where b.empno=a.mgr) as boss_name from emp a; 列出所有员工的姓名及其直接上级的姓名b.empno=a.mgr 什么意思呢 a,b 都是emp 表
解决方案 »
- ORACLE触发器对同一个表进行操作
- oracle存储过程(在线等)
- 求解释,这个select脚本,
- 要学习oracle,有些入门的问题要问一下各位
- 问大家一个数据库部署的问题?
- 用java 编写oracle8中模式管理器----聚集与序列的管理,要怎么入手?oracle8相关的资料好少....帮帮
- 关于临时表的问题,一定要用同一个Connection才能查到结果吗?
- 把SQLPLUS下的内容输出到文本文件的命令?
- 赛杨4 1.7G 加 HY 256DDR 运行 Oracle(新版本)畅不畅顺啊?
- 两种连接,哪种更优?【查询的优化问题】
- oracle调用utl_http url中的中文是乱码?那位大侠帮忙看看啊
- update 语句错误,求指导
另外同一个表可以作为子查询的连接条件上边就是一个子查询,只不过是同一个表子查询了。
比如你的一条记录ename (a),mgr(b),当外表查询检索到这条记录时,就会把mgr(b)传入子查询在得到返回
子查询where 里面 b.empno=a.mgr 员工编号等于 select a.ename查出来的mgr(上级编号) 这个怎么理解呢
比如现在表中有两条记录
empno~ename~mgr
1~jim~2
2~Andy~3
当执行这条SQL的时候,首先检索到第一条记录中的ename(Jim),然后把着条记录中的mgr(2)传入到子查询。
子查询此时相当于select ename from emp b where b.empno=2,返回Adny
最终,返回
Jim ~ Andy
明白?