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

ERROR 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;
4

2 回答 2

1

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

于 2015-08-20T15:45:24.850 回答
0

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

于 2015-08-20T15:39:01.477 回答