Как правильно выбрать значение функции MySql для таблицы с определенным псевдонимом?

Я не так в базе данных, и у меня есть следующая проблема извлечения географических координат из точечного объекта в запросе. Я использую MySql.

Итак, у меня есть такая таблица:

Field                 Type           Null     Key     Default    Extra                         
------------------------------------------------------------------------------------
id                    bigint(20)     NO       PRI                auto_increment                
localization_id       bigint(20)     NO       MUL                                          
market_name           varchar(255)   NO                                                
market_cod            varchar(255)   YES                                               
description           text           YES                                               
gps                   point          YES        

Как видите, запрос содержит поле gps, имеющее тип point.

Выполнение этого запроса работает нормально:

SELECT
    MD.market_name as market_name,
    MD.description as market_description,
    X(gps)as longitude,   
    Y(gps)as latitude
FROM MarketDetails as MD 

И я правильно получаю поля долготы и широты, возвращаемые соответственно функциями X(gps) и Y(gps).

Проблема состоит в том, что таблица MarketDetails имеет псевдоним MD (потому что тогда я добавлю JOIN с другими таблицами), поэтому я попытался псевдонимом также предыдущих функций X(gps) и Y(gps) следующим образом:

SELECT
    MD.market_name as market_name,
    MD.description as market_description,
    MD.X(gps)as longitude,   
    MD.Y(gps)as latitude
FROM MarketDetails as MD

Но при выполнении этого запроса я получаю следующее сообщение об ошибке:

#42000FUNCTION MD.X does not exist

Итак, что не так? Что мне не хватает? Как правильно сослаться на X(gps) и Y(gps) таблицы с псевдонимом MD?

1 ответ

Решение

Псевдоним идет по столбцам, а не по функции:

SELECT MD.market_name as market_name,
       MD.description as market_description,
       X(MD.gps)as longitude,   
       Y(MD.gps)as latitude
FROM MarketDetails MD;
Другие вопросы по тегам