@mikhailsn

Что за операторы в SQL запросе?

SELECT feed_category_id, (SELECT name FROM `" . DB_PREFIX . "feed_category` gbc WHERE gbc.feed_category_id = gbc2c.feed_category_id) AS feed_category, category_id, (SELECT name FROM `" . DB_PREFIX . "category_description` cd WHERE cd.category_id = gbc2c.category_id AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS category FROM `" . DB_PREFIX . "feed_category_to_category` gbc2c ORDER BY feed_category ASC;

Знаком с базовым синтаксисом SQL, но вводит в ступор переменные gbc, gbc2, cd ....
С чем они связаны? Базовые гугление ничего не доло.
  • Вопрос задан
  • 123 просмотра
Решения вопроса 2
kotomyava
@kotomyava
Системный администратор
Это псевдонимы таблиц:
`" . DB_PREFIX . "feed_category` gbc

вот тут мы обозвали таблицу с каким-то именем gbc, и в дальнейшем, мы можем использовать gbc.fieldname вместо того чтобы писать каждый раз `" . DB_PREFIX . "feed_category`.fieldname также это нужно не только для красоты, но и для многократного использования одной и той же таблицы в запросе, в подзапросах и.т.п.
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
бывает таблицы связываются между собой многократно.
В таких случаях чтобы их отличать - им присваивают "вторые имена" алиасы.
Ключевое слово "as" можно пропускать
select 
*
from table as t1
inner join table as t2 ....
inner join table as t3 ....
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы