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