Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В сложных ссылках на таблицы, для дальнейших ссылок в остальной части запроса, могут быть использованы временные имена. Они называются псевдонимами таблиц.
Чтобы создать псевдоним таблицы, пишите
FROM ссылка_на_таблицу AS псевдонимили
FROM ссылка_на_таблицу псевдонимКлючевое слово AS является необязательным. Псевдоним может быть любым идентификатором.
Типичное применение псевдонимов таблиц состоит в назначении длинным именам таблиц коротких идентификаторов, чтобы сделать последующие предложения соединений более читабельными. Например:
SELECT * FROM some_very_long_table_name s JOIN another_fairly_long_name a ON s.id = a.num;Псевдоним даёт новое имя ссылающееся на ту же таблицу в текущем запросе — поэтому где-либо ещё в текущем запросе не разрешается ссылаться на таблицу по первоначальному имени. Таким образом, вот это неправильно:
SELECT * FROM my_table AS m WHERE my_table.a > 5; -- ошибкаПсевдонимы таблиц, в основном, используются для целей сокращения и лучшей читабельности текста запроса, но они бывают необходимы, когда необходим выполнить соединение таблицы с собой же, например:
SELECT * FROM people AS mother JOIN people AS child ON mother.id = child.mother_id;Кроме того, псевдноним также требуется, если ссылка на таблицу является подзапросом (см. Section 7.2.1.3).
Скобки используются для того, чтобы избежать путаницы. В следующем примере, первый оператор назначает псевдоним b для второй таблицы my_table, а второй оператор назначает псевдоним результату соединения:
SELECT * FROM my_table AS a CROSS JOIN my_table AS b...SELECT * FROM (my_table AS a CROSS JOIN my_table) AS b...Другая форма псевдонимов таблиц даёт временные имена колонкам таблицы, точно также как и для самой таблицы:
FROM ссылка_на_таблицу [AS] псевдоним ( колонка1 [, колонка2 [,...]])Вначале, указываются псевдонимы колонок, затем обычые колонки таблицы, оставшиеся колонки не переименовываются. Такой синтаксис особенно полезен для подзапросов соединений таблиц с самими собой.
Когда к результатам предложения JOIN применяется псевдоним, то этот псевдоним скрывает первоначальные имена внутри JOIN. Например:
SELECT a.* FROM my_table AS a JOIN your_table AS b ON...является правильным SQL запросом, но:
SELECT a.* FROM (my_table AS a JOIN your_table AS b ON...) AS cнеправильный запрос: псевдоним таблицы a не виден за пределами псевдонима c.
Дата публикования: 2015-02-03; Прочитано: 369 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!