2017-09-26 2 views
1

MySQL에서 하위 쿼리를 사용하여이 문제를 해결하려고했지만 하위 쿼리가 두 개 이상의 행을 반환하는 것으로 표시되어 솔루션을 찾을 수 없습니다.mysql : sub-query가 1 행 이상을 반환합니다.

문제 설명 : 급여와 함께 해당 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

그것은 단순히 의미 귀하의 하위 쿼리 요구하는 하나의 행을 반환하도록 where 절의 더 많은 조건. 더 자세한 설명을 주저하지 말고 다시 물어보십시오. –

+1

'mgr'열에는 무엇이 들어 있습니까? 스키마 및 샘플 데이터를 추가하십시오. –

답변

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 
+0

- 감사합니다. –