Слово «AS» в предложении mysql FROM является необязательным? - PullRequest
2 голосов
/ 07 ноября 2011

Я наткнулся на интересный (для меня) запрос, и я не совсем уверен, что он делает.

SELECT SQL_CALC_FOUND_ROWS DISTINCT P.* FROM table P WHERE P.status = ...

Вопрос касается P конкретно FROM table P.Я знаю, что в предложении FROM вы можете использовать предложение AS, но этот конкретный запрос этого не делает.Слово AS необязательно?

Ответы [ 3 ]

5 голосов
/ 07 ноября 2011

Определение псевдонимов не всегда является необязательным, но когда вы определяете псевдоним, ключевое слово 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

Ключевое слово AS также необязательно при определении псевдонимов столбцов:

Ключевое слово AS является необязательным при назначении псевдонима select_expr с идентификатором

Источник: ВЫБЕРИТЕ Синтаксис

1 голос
/ 07 ноября 2011

В этой ситуации это не требуется, но в других ситуациях, например, при соединении производных таблиц, где это требуется.

0 голосов
/ 07 ноября 2011

Исторически поддержка была немного неоднозначной, но теперь это стандарт, который поддерживают все, и он необходим для разрешения конфликтов имен (из нескольких таблиц выбирается одноименное поле [ы]).Кроме того, он отлично подходит для предоставления псевдонима составным / вычисляемым / виртуальным полям!

В конце дня это "требуется", если в противном случае оно будет однозначным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...