select ename,sal from emp join (select max(sal) max_sal,deptno from emp group by deptno) t
on (emp.sal = t.max_sal and emp.deptno = t.deptno);
这条语句中的jion该怎么理解 我查了下没发现这种单独一个join的写法 

解决方案 »

  1.   

    join...on是标准sql语法啊.
    这里的join链接的是一个子查询而已.
    可以转化成如下方式:
    SELECT ENAME, SAL
      FROM EMP
     WHERE (SAL, DEPTNO) IN
           (SELECT MAX(SAL) MAX_SAL, DEPTNO FROM EMP GROUP BY DEPTNO);
      

  2.   

    这种join...on是它的一种语法,它并不是一种单独的用法
      

  3.   

    这句是join了一个结果集,和join一个表是一样的.
      

  4.   

    join == 两表关联。
    楼主需要学习一下基本的 sql 语法了。
      

  5.   

    select A.name,B.name from a A , b B where A.id = B.id      等同于
    select A.name,B.name from a A join b B on (A.id = B.id)