使用 SQL 子查询作为表名

Use SQL subquery as tablename

我想从表名存储在用户列表中的用户那里获取所有特定分数,如下所示:

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

错误消息说明了一切。您需要在派生 table.

上使用别名
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 将不可用,您的查询仍然会失败。