2015-05-04 39 views
-1

我想从用户,其表名存储在用户的列表,像这样得到的所有具体比分:使用SQL子查询的表名

SELECT Score 
from (SELECT tablenameOfUser FROM `Users`) 
WHERE X='something' 
    AND Y='somethingElse' 
ORDER BY Score 

我得到的错误:

1248 - Every derived table must have its own alias

+0

哪个dbms? (似乎是ANSI SQL兼容...除了分隔标识符的单引号...) – jarlh

+0

我正在使用phpMyAdmin – Mark

+0

[每个派生表必须具有自己的别名]的可能重复(http://stackoverflow.com/questions/1888779/every-derived-table-must-have-its-own-alias) – AdamMc331

回答

2

错误消息说明了这一切。您需要派生表上的别名。

SELECT Score 
from (SELECT tablenameOfUser FROM `Users`) 
WHERE X='something' 
    AND Y='somethingElse' 
ORDER BY Score 

应该是:

SELECT Score 
from (SELECT tablenameOfUser FROM `Users`) yourAlias 
WHERE X='something' 
    AND Y='somethingElse' 
ORDER BY Score 

你的子查询不仅具有tablenameOfUser列,因此ScoreXY,将无法使用,你的查询仍然会失败。

+0

那么使用sql-result作为表名的解决方案是什么? –

+0

@MarcelEnnix,问一个新的问题,社区将回答。 –