Как правильно выбрать значение функции 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;