日期:2014-05-17  浏览次数:20826 次

内连接inner join
SQL code

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



------解决方案--------------------
SQL code
select * from emp e1 inner join emp e2 --[on e1.colname=e2.col2name]

------解决方案--------------------
SQL code
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;

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

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

------解决方案--------------------
SQL code

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

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