2015-05-04 58 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,問一個新的問題,社區將回答。 –