错误代码:1248.每个派生表必须具有其自己的别名找不到用于查询的解决方案 [英] Error Code: 1248. Every derived table must have its own alias No solution found for query
问题描述
在MySQL中使用此查询时出现错误.
I am getting an error while using this query in MySQL.
查询逻辑是正确的,我已经在Oracle中对其进行了尝试,并且运行正常,但是在MySQL中运行时出现错误.
The query logic is correct and I have tried it in Oracle and it's running fine, but I'm getting an error when running this in MySQL.
我查看了关于StackOverflow的先前问题,但没有找到什么对我有帮助.
I looked at previous questions on StackOverflow, but didn't find something to help me.
这是查询:
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
推荐答案
您需要为子查询提供别名,如下所示:
You need to provide an alias for the subquery, like so:
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;
从文档,>
子查询在SELECT语句的FROM子句中是合法的.实际的语法是:
Subqueries are legal in a SELECT statement's FROM clause. The actual syntax is:
SELECT ... FROM(子查询)[AS]名称...
SELECT ... FROM (subquery) [AS] name ...
[AS] name子句是强制性的,因为FROM子句中的每个表都必须有一个名称.子查询选择列表中的任何列都必须具有唯一的名称.
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.
这篇关于错误代码:1248.每个派生表必须具有其自己的别名找不到用于查询的解决方案的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!