select ds.deptno, t2.grade from (select deptno, avg(sal) as avgsal from emp group by deptno) ds left join salgrade t2 on ds.avgsal between t2.losal and t2.hisal
一个用 逗号,另两张表用left join ..不能写在ON后面的
2楼是说 要么 你写成3楼这样的 要么写成下面这样的select t1.deptno, t2.grade from (select deptno, avg(sal) as avgsal from emp group by deptno) t1, salgrade t2 where t1.deptno = t2.deptno and t1.avgsal between t2.losal and t2.hisal
select ds.deptno, t2.grade
from (select deptno, avg(sal) as avgsal from emp group by deptno) ds
left join salgrade t2
on ds.avgsal between t2.losal and t2.hisal
from (select deptno, avg(sal) as avgsal from emp group by deptno) t1,
salgrade t2
where t1.deptno = t2.deptno
and t1.avgsal between t2.losal and t2.hisal