问题一:有一个tableA
select name,(select MAX(id) from tableA ) as id from tableA
该语句可以正常执行
但是 对语句加下更改
select name,(select MAX(id) from temp ) as id
from tableA as temp
为什么就找不到temp了,
sql语句 SELECt在From之后执行,为什么还找不到呢?
问题二:
mysql中 select中的别名 为什么在 where中不可用,而在 group by 就可用了呢?
这个设计到sql关键字执行顺序:
1.会先执行内部的子查询;
子查询参考:
https://www.cnblogs.com/zhuil...
2.mysql中这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。
首先where将最原始记录中不满足条件的记录删除;
然后通过Group By关键字对视图进行分组;
之后根据Having关键字后面指定的筛选条件,将分组后不满足条件的记录筛选掉;
最后按照Order By语句对视图进行排序;