Код ошибки: 1248. Каждая производная таблица должна иметь свой собственный псевдоним. Решение не найдено для запроса.

Вопрос:Я получаю сообщение об ошибке при использовании этого запроса в MySQL. Логика запроса верна, и я пробовал ее в Oracle, и она работает нормально, но я получаю сообщение об ошибке при работе в MySQL. Я просмотрел предыдущие вопросы о StackOverflow, но не нашел что-то, чтобы помочь мне. Вот запрос: select * from (select PM.ID, PM.Name,

Вопрос:

Я получаю сообщение об ошибке при использовании этого запроса в MySQL.

Логика запроса верна, и я пробовал ее в Oracle, и она работает нормально, но я получаю сообщение об ошибке при работе в MySQL.

Я просмотрел предыдущие вопросы о StackOverflow, но не нашел что-то, чтобы помочь мне.

Вот запрос:

select * from (select PM.ID, PM.Name, PM.TIMEOUT, PMS.PROCESS_MONITOR_ID, PMS.PROCESS_START_DATE from RATOR_IMP.PROCESS_MONITOR as PM JOIN RATOR_IMP.PROCESS_MONITOR_STATISTIC as PMS ON PM.ID = PMS.PROCESS_MONITOR_ID WHERE PM.ENABLED=1 and (PM.NAME=’SDRRATINGENGINE11′ or PM.NAME=’WORKFLOWENGINE1′) order by PMS.PROCESS_START_DATE desc) limit 10000;

И вот ошибка:

Error Code: 1248. Every derived table must have its own alias No soultion found for query Лучший ответ:

Вам нужно предоставить псевдоним для подзапроса, например:

select * from (select PM.ID, PM.Name, PM.TIMEOUT, PMS.PROCESS_MONITOR_ID, PMS.PROCESS_START_DATE from RATOR_IMP.PROCESS_MONITOR as PM JOIN RATOR_IMP.PROCESS_MONITOR_STATISTIC as PMS ON PM.ID = PMS.PROCESS_MONITOR_ID WHERE PM.ENABLED=1 and (PM.NAME=’SDRRATINGENGINE11′ or PM.NAME=’WORKFLOWENGINE1′) order by PMS.PROCESS_START_DATE desc) as s limit 10000;

В документации,

Подзапросы являются законными в предложении FROM SELECT. Фактический синтаксис:

SELECT… FROM (подзапрос) [AS] name…

Предложение имени [AS] является обязательным, поскольку каждая таблица в предложении FROM должна иметь имя. Любые столбцы в списке выбора подзапроса должны иметь уникальные имена.

Ответ №1

Да вам нужно указать псевдоним для полученных данных

select x.* from (select PM.ID, PM.Name, PM.TIMEOUT, PMS.PROCESS_MONITOR_ID, PMS.PROCESS_START_DATE from RATOR_IMP.PROCESS_MONITOR as PM JOIN RATOR_IMP.PROCESS_MONITOR_STATISTIC as PMS ON PM.ID = PMS.PROCESS_MONITOR_ID WHERE PM.ENABLED=1 and (PM.NAME=’SDRRATINGENGINE11′ or PM.NAME=’WORKFLOWENGINE1′) order by PMS.PROCESS_START_DATE desc)x <— here limit 10000;

Оцените статью
Добавить комментарий