我偶然發現了一個有趣的(對我)查詢,我不確定它的功能。mysql FROM子句中的「AS」是否可選?
SELECT SQL_CALC_FOUND_ROWS DISTINCT P.* FROM table P WHERE P.status = ...
的問題是在考慮到P
具體FROM table P
。我知道在FROM
子句中可以使用AS
子句,但這個特定的查詢不能。單詞AS
是可選的嗎?
我偶然發現了一個有趣的(對我)查詢,我不確定它的功能。mysql FROM子句中的「AS」是否可選?
SELECT SQL_CALC_FOUND_ROWS DISTINCT P.* FROM table P WHERE P.status = ...
的問題是在考慮到P
具體FROM table P
。我知道在FROM
子句中可以使用AS
子句,但這個特定的查詢不能。單詞AS
是可選的嗎?
定義別名並不總是可選的,但是當您確定別名時,關鍵字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
關鍵字也是可選的:
的AS與標識符
源混疊一個select_expr當關鍵字是可選的:SELECT Syntax
在這種情況下,它不是必需的,但還有其他一些情況,例如將派生表連接到需要的地方。
從歷史上看,支持有點混雜,但現在已成爲每個人都支持的標準,並且對於名稱衝突解決方案至關重要(從同名域中選擇多個表)。給混合/計算/虛擬域賦予別名也非常棒!
在一天結束時,它是「必需的」,否則它是明確的。