我正在查看一些具有以下结构的sql代码:
set @var =
(
select count(1) from
(
select * from table where field = 1
)
someVariable
)
除非声明中有“someVariable”,否则似乎无法运行。我的问题是,这个“someVariable”代表什么,为什么它在查询中?我不明白为什么我不能将@var直接设置为select count语句,所以“someVariable”真的让我失望。
答案 0 :(得分:6)
派生表需要有别名。在这种情况下,someVariable
在别名中起作用。
答案 1 :(得分:0)
当我在MySQL上运行类似的查询时,我得到了:
ERROR 1248 (42000): Every derived table must have its own alias
内部选择实际上产生了一个派生表,someVariable是它的别名。