为什么每个派生表都有自己的别名?

时间:2015-08-20 15:35:16

标签: mysql alias derived-table

select a as average,name 
from (select avg(marks) as a,name 
      from marks,student where rollno=roll group by marks.roll);
  

错误1248(42000):每个派生表必须有自己的别名

我知道纠正。只是想知道我为什么要使用别名?

select a as average,name 
from (select avg(marks) as a,name 
      from marks,student where rollno=roll group by marks.roll)xxx;

2 个答案:

答案 0 :(得分:1)

这只是MySQL设计中的一个怪癖。在这种情况下,Oracle和SQL-Server不需要别名。

答案 1 :(得分:0)

如果要选择,则需要声明From - 子句。如果没有,就像在子选择中一样,你甚至无法选择。这就是为什么SQL语法定义为每个子选择表创建一个别名。