2015-09-08 58 views
-2

我想从组中获得小于10的速度,但出现此错误:每个派生表都必须有自己的别名

我该如何解决它?

Every derived table must have its own alias

MySQL代码:

SELECT speed from 
    (SELECT stop_distance 
    FROM prognosis 
    WHERE mac = '12:B4:B3:89:H3:I3' 
    and stop_name = 'Sandstreet' 
    and stop_distance < 61) 
where speed < 10 
+2

的[每一个派生表必须有自己的别名】可能重复(http://stackoverflow.com/questions/1888779/every-derived-table-must- have-its-own-alias) – PetSerAl

+1

您需要为子查询提供一个别名:'FROM(SELECT ...)AS distance'。 –

+1

解决该错误后,会出现另一个错误。内部查询(这是错误消息的“派生表”)不会返回列“速度”。 – GolezTrol

回答

2

添加一个别名,以确定您的子查询:

SELECT speed from 
    (SELECT stop_distance 
    FROM prognosis 
    WHERE mac = '12:B4:B3:89:H3:I3' 
    and stop_name = 'Sandstreet' 
    and stop_distance < 61) AS sub_select 
where speed < 10 

不过,我觉得你还是有问题。您的子选择实质上就像一个临时表*,具有单列stop_distance。但是您正尝试从中选择speed。这是行不通的。您可能需要做一些调查或提出其他问题才能得到一个能够给您想要的结果的查询。

*我敢肯定那不是技术上是正确的

相关问题