2014-12-23 1 views
3

Я получаю сообщение об ошибке при использовании этого запроса в MySQL.Код ошибки: 1248. Каждая производная таблица должна иметь свой собственный псевдоним Решение не найдено для запроса

Логика запроса правильная, и я пробовал ее в 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 

ответ

5

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

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; 

С documentation,

Subqueries are legal in a SELECT statement's FROM clause. The actual syntax is:

SELECT ... FROM (subquery) [AS] name ...

The [AS] name clause is mandatory, because every table in a FROM clause must have a name. Any columns in the subquery select list must have unique names.

+0

Спасибо :) свой ход в настоящее время. Просто небольшой вопрос, который не связан с этим вопросом. Я хочу использовать инструкцию insert и хранить данные, возвращающиеся из этого запроса, в новую таблицу. Но не знаю, как использовать вставку, используя вышеуказанный оператор select. Пожалуйста, помогите мне –

0

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

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; 

 Смежные вопросы

  • Нет связанных вопросов^_^