【发布时间】:2019-07-11 18:17:53
【问题描述】:
在 MySQL Shell 中,两个几乎相同的查询。一个有效,一个无效。区别是一个关键词。这是为什么?
工作查询只会根据您在子查询中使用的限制数获得您选择的薪水。所以“限制4”会给你第四高的薪水。
SELECT SALARY
FROM (
SELECT DISTINCT SALARY
FROM TBLEMPLOYEE
ORDER BY SALARY DESC LIMIT 3
) RESULT
ORDER BY SALARY LIMIT 1
这成功给了第三高的薪水。
如果我删除“结果”一词,它将不再有效。结果有什么作用?那是别名吗?我明白了: ERROR 1248 (42000): 每个派生表都必须有自己的别名
【问题讨论】:
-
因为 MySQL 中的派生表需要表别名。
-
是的,它是一个别名。 (在 SQL 标准中,它被称为“关联名称”。)MySQL 需要内联视图的关联名称。在 MySQL 用语中,内联视图(括号中的 FROM 关键字后面的 SELECT)称为“派生表”。并且 MySQL 要求分配一个名称,该名称必须遵循有效标识符的规则。它不需要特别是
result,我们可以使用r2d2或v。