我偶然发现了一个有趣的(对我来说)查询,我不确定它的作用。
SELECT SQL_CALC_FOUND_ROWS DISTINCT P.* FROM table P WHERE P.status = ...
问题在于P
具体FROM table P
。我知道在FROM
子句中你可以使用AS
子句,但是这个特定的查询没有。单词AS
是否可选?
答案 0 :(得分:5)
定义别名并不总是可选的,但是当您确定别名时,关键字AS
始终是可选的。
table_factor:
tbl_name [PARTITION (partition_names)]
[[AS] alias] [index_hint_list]
| table_subquery [AS] alias
| ( table_references )
| { OJ table_reference LEFT OUTER JOIN table_reference
ON conditional_expr }
来源:JOIN Syntax
定义列别名时,AS
关键字也是可选的:
当使用标识符
别名化select_expr时,AS关键字是可选的
答案 1 :(得分:1)
在这种情况下,它不是必需的,但还有其他情况,例如加入派生表,需要它。
答案 2 :(得分:0)
从历史上看,支持有点混合,但它现在是每个人都支持的标准,并且对于名称冲突解决是必不可少的(从具有相同命名字段[s]的多个表中选择)。为复合/计算/虚拟字段赋予别名也非常棒!
在一天结束时,如果它是明确的话,它是“必需的”。