SQL中为什么无法从别名表中查询字段

问题一:有一个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 就可用了呢?

阅读 2.5k
2 个回答

这个设计到sql关键字执行顺序:
1.会先执行内部的子查询;
子查询参考:
https://www.cnblogs.com/zhuil...
2.mysql中这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。
首先where将最原始记录中不满足条件的记录删除;
然后通过Group By关键字对视图进行分组;
之后根据Having关键字后面指定的筛选条件,将分组后不满足条件的记录筛选掉;
最后按照Order By语句对视图进行排序;

新手上路,请多包涵

问题一:有一个tableA
正确写法SELECT temp.name,(SELECT MAX(id) FROM temp ) AS id
FROM tableA AS temp
二:SQL目前不支持字段别名条件查询

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进