6 mysql sql alias derived-table
我在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;
Run Code Online (Sandbox Code Playgroud)
这是错误:
Error Code: 1248. Every derived table must have its own alias
No soultion found for query
Run Code Online (Sandbox Code Playgroud)
shr*_*t18 12
您需要为子查询提供别名,如下所示:
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;
Run Code Online (Sandbox Code Playgroud)
从文档中,
子查询在SELECT语句的FROM子句中是合法的.实际语法是:
SELECT ... FROM(子查询)[AS]名称...
[AS] name子句是必需的,因为FROM子句中的每个表都必须具有名称.子查询选择列表中的任何列都必须具有唯一的名称.