select * from emp e1, (select * from emp) e2;
用inner join怎么写?
select * from emp e1 inner join (select * from emp) e2;这么写怎么不对啊?

解决方案 »

  1.   

    select * from emp e1 inner join emp e2 --[on e1.colname=e2.col2name]
      

  2.   


    select * from emp e1, 
        (select deptno, avg(sal) avg_sal from emp group by deptno) e2 
    where e1.deptno=e2.deptno and e1.sal>e2.avg_sal;
    原来是这个,怎么改inner join?
      

  3.   

    select * from emp e1 inner join
        (select deptno, avg(sal) avg_sal from emp group by deptno) e2 on
    e1.deptno=e2.deptno and e1.sal>e2.avg_sal;
    是要求必须使用内连接吗,因为你已经实现了
      

  4.   

    哦,谢谢啊,inner join后面是不是一定要加on? 不加on的条件就报错。而第一种写法where可以不加条件啊?
      

  5.   

    不加on会有语法错误,这是inner join的语法. 而第一种写法是多表查询,可以不要where条件,不过会产生笛卡尔集
      

  6.   


    你的SQL原型本身就不是内连接,你当然无法转换成内连接了。如果一定要用join形式来实现,那么应当使用cross join.select * from emp e1 cross join (select * from emp) e2
      

  7.   


    select * from emp e1 inner join emp e2 
    on e1.字段=e2.字段 
      

  8.   

    你要做的查询是,查询比本部门平均工资高的员工的信息和部门的平均工资。
    tx2730好像是正确,不过没在Oracle中验证。