我试图通过使用MySQL中的子查询来解决下面给出的这个问题,但找不到解决方案,因为它显示子查询返回多行。
问题陈述:显示emp名称及其工资及其经理和经理
薪水。
显示那些经理被雇用的员工。
select w.ename employee, w.SAL woSal, m.ename manager, m.SAL mSal
from emp w, emp m
where w.mgr = m.empno and
(SELECT E1.ENAME
FROM EMP E1, EMP E2
WHERE E1.MGR=E2.EMPNO and ( E1.hiredate<E2.hiredate));
答案 0 :(得分:2)
您不需要子查询 - 只需将hiredate上的条件添加到连接条件即可。另请注意,隐式连接(在from
子句中使用多个表)被认为已弃用,您可能最好将其重写为显式连接:
SELECT w.ename employee, w.SAL woSal, m.ename manager, m.SAL mSal
FROM emp w
JOIN emp m
WHERE w.mgr = m.empno and w.hiredate < m.hiredate