2016-11-04 5 views
1

Так я использую «как» команды в этом кодеMySQL псевдоним таблицы не работает

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); 

это работает должным образом. какие-либо предложения?

+0

Извините, но я думаю, что все это дело немного беспорядка (включая бит, что вы думаете «работает правильно»). См. Http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query – Strawberry

+0

Что вы пытаетесь достичь? – FJT

+0

@CGritton да. это –

ответ

1

Назначение псевдонима для подзапроса не означает, что его можно обрабатывать точно так же, как таблица.

В первом запросе mysql не знает, что O в select max(NUMBER_OF_ORDERS) from O не является таблицей. Так вот как это относится к нему, следовательно, к ошибке.

company - это название вашей схемы?

Кстати, может быть, вы могли бы вернуть ту же информацию, используя:

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) 
order by count(CUSTOMER_ID) desc 
limit 1; 

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

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