跪求指导!!
题目:列出入职日期早于其直接上级的所有雇员
错误:select ename from emp e where hiredate<(select hiredate from emp where e.empno=mgr);
select ename from emp e where hiredate<(select hiredate from emp where e.empno=mgr)
*
ERROR at line 1:
ORA-01427: single-row subquery returns more than one row
正确:select ename from emp e where hiredate<(select hiredate from emp where empno=e.mgr);
第一条是我自己写的,为什么会报错呢,我不明白,有大侠能给解释一下吗,跪谢
不是已经有了很明确的提示么单行子查询返回多余一行
我的意思是
select hiredate from emp where e.empno=mgr
select hiredate from emp where empno=e.mgr
这两个有区别吗?都是找empno=mgr,第一个是从外面的emp中empno=子查询肿的mgr,第二个是子查询中的empno=外面的emp a中的mgr是吗?这有什么区别吗为什么会单行子查询返回多余一行这样? 我猜的啊 :PP
可能是因为7839没有上级导致的,如果7839有上级的话
select m.hiredate from emp m where e.empno=m.mgr
select m.hiredate from emp m where m.empno=e.mgr
这两个语句应该是一样的
页:
[1]