Mysql子查询遇到的遇到的一点小困惑?

为什么这里where条件语句中的e.deptno=d.deptno,有效啊?这里嵌套的select语句没有from emp e啊?我知道主语句有from emp e,难道是执行顺序的问题?可是如果是的话

select * from emp where sal > (select avg(sal) from emp);岂不是也可以写成

select * from emp where sal > (select avg(sal));了!可是不行我试过报错了!

为什么啊!

求教

where条件语句中的e.deptno=d.deptno有效是因为 dname是当做列来被查询,而select * from emp where sal > (select avg(sal) from emp); sal是当做子查询,所以括号中的查询必须指定查询的对象emp。

指定查询的对象emp