SQL子查询和连接

时间:2012-03-21 09:38:17

标签: sql

有2个表可用

EMP(empname PK, empno, sal, comm, deptno, hiredate, job, mgr)

DEPT(depnto, dname, loc)

查询

a)显示获得第一高薪

的ename和dname

他们已经发表声明,必须仅使用子查询和Join

来完成

所以我开始这样:

select A.ename, B.dname from emp A, dept B where A.deptno=B.deptno

我尝试了各种烫发和梳理,但我无法获得加入声明......

这不是一个家庭作业问题,我只是想解决教科书中的运动问题。提前谢谢

2 个答案:

答案 0 :(得分:1)

要获得最高工资的记录,我Ordered by e.sal DESC。这将按工资排序记录,最高位于最高位置(DESC =降序,因此最高 - 最低)。

然后我使用TOP 1只返回1条记录。

要获得dname joined 与2 deptno列相关的表格。

SELECT TOP 1 e.empname
            ,d.dname
FROM [EMP] e
JOIN [DEPT] d ON d.deptno=e.deptno
ORDER BY e.sal DESC

我希望这会有所帮助

答案 1 :(得分:0)

您可以尝试以下查询:

SELECT emp.ename,dept.dname FROM emp
        JOIN dept ON emp.deptno=dept.deptno
        WHERE emp.sal=(SELECT MAX(sal) FROM emp)