Обращения по алиасу в MYSQL

Рейтинг: 0Ответов: 1Опубликовано: 24.12.2014

Сразу попрошу не закидать меня улыбками, запрос очень упрощен. Почему мы не можем выполнить такой запрос

SELECT `p`.`link`, `p`.`name_ua` name, `p`.`id` as idp
FROM (`projects` p)
WHERE `p`.`idp` = 10

Ответы

▲ 1
  1. Потому что idp - это уже алиас p.id, т.е. вы пытаетесь обратиться к `p`.``p`.`id`` (грубо и приближенно)
  2. Потому что для where еще не существует результата работы селекта. Этот результат появляется ПОСЛЕ того как отработают события where. Если вы хотите воспользоваться п.1, напишите

    SELECT p.link, p.name_ua name, p.id as idp FROM (projects p) HAVING idp = 10