本帖最后由 Creamicend 于 2014-01-13 22:51:52 编辑

解决方案 »

  1.   

    你把条件写在on里,就意味着里面提到的表必须是join连接,你把表直接写成笛卡尔积,就意味着条件必须写在where里。我第一次看见有人混着用。
      

  2.   


    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
      

  3.   

    一个用 逗号,另两张表用left join ..不能写在ON后面的
      

  4.   

    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