Задать вопрос
@dflbrhekbn

Как правильно назначать алиасы таблицам и столбцам в mysql?

Делаю задания на сайте www.sql-ex.ru и вот местами просматриваю ответы на некоторые задания, где не могу справиться сам. И вот уже неоднократно встречаю запросы где вместо имени таблицы используется t1, t2, t3 и т.д. Например :
SELECT model
FROM (
SELECT model, price
FROM pc
UNION
SELECT model, price
FROM Laptop
UNION
SELECT model, price
FROM Printer
) t1
WHERE price = (
SELECT MAX(price)
FROM (
SELECT price
FROM pc
UNION
SELECT price
FROM Laptop
UNION
SELECT price
FROM Printer
) t2
);
Нашел что это называется алиас и почитал про них и AS. И вот не могу понять почему пример выше работает, а мой :
SELECT model
FROM t1
WHERE model = 1401
Ведь и там и там вместо имени таблицы используется t1 . К тому же я не вижу AS.
Объясните мне дураку !
  • Вопрос задан
  • 2816 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
qonand
@qonand
Software Engineer
если Вы внимательно посмотрите на пример, то увидите что там идет селект с подзапроса, которому присвоен псевдоним. В Вашем же коде чему присвоен псевдоним? ничему... должно быть так
SELECT model
FROM table_name AS t1
WHERE model = 1401

т.е. псевдоним Вы должны присваивать либо конкретной таблице, либо конкретному полю, либо конкретной выборке
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
dflbrhekbn: ключевое слово AS можно пропускать
SELECT * FROM `table_name` AS t1
эквивалентно
SELECT * FROM `table_name` t1

Конструкция
select .. FROM (
SELECT model, price
FROM pc
UNION
SELECT model, price
FROM Laptop
UNION
SELECT model, price
FROM Printer
) t1
означает что для данного запроса создается виртуальная таблица в которую помещается результат выполнения "SELECT model, price FROM pc UNION SELECT model, price FROM Laptop UNION SELECT model, price
FROM Printer" и ей в данном запросе присвоен алиас t1.
К слову сказать работают виртуальные таблицы дико медленно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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