Повторное построение запроса для ПРЕДСТАВЛЕНИЯ CREATE без использования подзапросов?

#mysql

#mysql

Вопрос:

Мой запрос работает нормально, когда я запускаю его в базе данных, но как только я пытаюсь создать представление, я получаю сообщение (ОШИБКА 1349 (HY000): выбор представления содержит подзапрос в предложении FROM ). Я прочитал несколько других сообщений, и проблема, похоже, в том, что я не могу писать подзапросы в представлении текущей версии БД. Как бы мне реструктурировать приведенный ниже запрос для достижения той же конечной цели:

 CREATE VIEW vHW2_3_mmirkovi as (
SELECT n.Name, sum(n.profit) AS profit

FROM (SELECT v.Name, (p.sell_Price - p.cost) AS profit FROM dreamhome.A_Vendors AS v
    
INNER JOIN dreamhome.A_Products AS p ON v.V_Id = p.V_Id) AS n GROUP BY n.name ;)
 

Запрос без инструкции create view выдает

  -------- -------- 
| Name   | profit |
 -------- -------- 
| Austin |     10 |
| Grant  |     50 |
| James  |    290 |
| Wendy  |     10 |
 -------- -------- 
4 rows in set (0.00 sec)
 

Комментарии:

1. Обратите внимание, что запросы к представлениям в MySQL не могут использовать базовые индексы, что делает их полезность сомнительной

Ответ №1:

 CREATE VIEW vHW2_3_mmirkovi AS
SELECT v.Name, 
       SUM(p.sell_Price - p.cost) AS profit 
FROM dreamhome.A_Vendors AS v
INNER JOIN dreamhome.A_Products AS p ON v.V_Id = p.V_Id
GROUP BY v.name;