1
select *
from ( select * from table ) 'table1';

我不明白为什么会收到此错误:

错误 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''table1'' at line 2

我检查了手册(FROM 子句中的 MySQL 子查询),我看不出示例和我的小语句之间有任何区别。

4

4 回答 4

3

表名/别名必须用反引号括起来或什么都不用

select *
from ( select * from table1 ) table1;
于 2013-04-24T21:45:30.520 回答
0

除了不在别名周围加上引号外,我相信您还需要在子查询中的“表”周围加上反引号,因为它是 MySQL 中的保留字(假设您确实将表命名为“表”):

select * from ( select * from `table` ) table1;

于 2013-04-24T21:51:31.780 回答
0

我认为您想要后引号而不是前引号:

select *
from ( select * from table ) `table1`;

前引号指定一个字符串常量。反引号分隔名称。

于 2013-04-24T21:46:00.147 回答
0

当您有一个表的子查询时,您需要用名称声明它。

select * from (select * from table1) as x
于 2013-04-24T21:46:06.257 回答