Как правильно написать подзапросы, которые используют математические функции для вычисления столбца в лице "Error Code 1248" Производные таблицы должны иметь свои собственные Alises?

Меня попросили в упражнении вычислить три значения из двух столбцов, List_price и discount_amount. частично моя проблема в том, что мои инстинкты программирования хотят воспрепятствовать моей способности полностью понять то, чему учат.

Может кто-нибудь показать мне, что не так с кодом и предоставить шаблон, чтобы лучше справиться с ситуацией.

SELECT list_price, discount_percent, product_name, raw_percent,
    discount_amount, (list_price - discount_amount) AS discount_price 
FROM ( 
     SELECT discount_percent,
                    list_price,
                    (discount_percent /10) = raw_percent 
                    (list_price * raw_percent) = discount_amount    
) ORDER BY discount_price DESC LIMIT 5; 

1 ответ

Производные таблицы должны иметь свои псевдонимы

MySQL требует, чтобы, если вы ищете доступ к столбцам набора результатов, возвращаемых подзапросом, то подзапрос должен быть правильно псевдонимом во внешнем запросе (даже если этот псевдоним фактически не используется в запросе).

Вам нужно будет создать псевдоним подзапроса, который вы используете в предложении WHERE:

SELECT ...
FROM (
    SELECT ...
) AS some_alias
ORDER BY discount_price DESC LIMIT 5; 

Другое замечание по вашему запросу:

  • столбец "product_name" должен быть возвращен подзапросом, иначе он не будет доступен во внешнем запросе
  • в подзапросе после "raw_percent" отсутствует кома
Другие вопросы по тегам