【发布时间】:2016-11-04 16:27:53
【问题描述】:
所以我在这段代码中使用'as'命令
select PERSONAL_ID,NAME,SURNAME,BIRTH_DATE,NUMBER_OF_ORDERS
from(
select PERSONAL_ID,NAME,SURNAME,BIRTH_DATE,count(CUSTOMER_ID) as NUMBER_OF_ORDERS
from customer as C
right join
customer_hotel as CH on CH.CUSTOMER_ID = C.ID
group by(CH.CUSTOMER_ID)
) as O
where NUMBER_OF_ORDERS = (select max(NUMBER_OF_ORDERS) from O);
它说:表“company.o”不存在。 但是当我这样做时
select PERSONAL_ID,NAME,SURNAME,BIRTH_DATE,NUMBER_OF_ORDERS
from(
select PERSONAL_ID,NAME,SURNAME,BIRTH_DATE,count(CUSTOMER_ID) as NUMBER_OF_ORDERS
from customer as C
right join
customer_hotel as CH on CH.CUSTOMER_ID = C.ID
group by(CH.CUSTOMER_ID)
) as O
where NUMBER_OF_ORDERS = (select max(NUMBER_OF_ORDERS)
from(
select PERSONAL_ID,NAME,SURNAME,BIRTH_DATE,count(CUSTOMER_ID) as NUMBER_OF_ORDERS
from customer as C
right join
customer_hotel as CH on CH.CUSTOMER_ID = C.ID
group by(CH.CUSTOMER_ID)
) as O);
它工作正常。有什么建议吗?
【问题讨论】:
-
对不起,但我认为整个事情有点混乱(包括你认为“正常工作”的部分)。见meta.stackoverflow.com/questions/333952/…
-
你想达到什么目的?
-
@CGritton 是的。它是
-
@CGritton 不是真的,它只有在只有一行最大值存在时才有效,但如果有 3 行最大值它只会返回一个。
-
@GiorgiCercvadze,啊,明白了。那么你的所作所为是有道理的。
标签: mysql sql table-alias