Создается представление, но возникает ошибка «Представления SELECT содержат подзапрос в предложении FROM» - PullRequest
0 голосов
/ 05 мая 2020

Это код, который я использую;

CREATE VIEW MostBuys AS
SELECT Kundnummer, AntalBest FROM Ordrar
JOIN (SELECT OrderNr, COUNT(*) AS AntalBest
FROM OrderContent
GROUP BY OrderNr) BesAm ON BesAm.OrderNr = Ordrar.OrderNr;

Я пытаюсь подсчитать, сколько строк OrderNr существует для каждого целого числа c, а затем соединить это с соответствующим Kundnummer. Эта часть работает сама по себе;

SELECT Kundnummer, AntalBest FROM Ordrar
JOIN (SELECT OrderNr, COUNT(*) AS AntalBest
FROM OrderContent
GROUP BY OrderNr) BesAm ON BesAm.OrderNr = Ordrar.OrderNr;

Но я не могу создать представление с ней.

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Вы можете использовать агрегирование, чтобы обойти это ограничение MySQL просмотров:

CREATE VIEW MostBuys AS
SELECT o.Kundnummer, COUNT(oc.OrderNr) AS AntalBest
FROM Ordrar o
LEFT JOIN OrderContent oc ON oc.OrderNr = o.OrderNr
GROUP BY o.Kundnummer
1 голос
/ 05 мая 2020

MySQL не допускает подзапросы в предложении FROM представления. Arggh!

Вы можете заменить это коррелированным подзапросом:

Это код, который я использую;

CREATE VIEW MostBuys AS
    SELECT o.Kundnummer,
           (SELECT COUNT(*) AS AntalBest
            FROM OrderContent oc
            WHERE oc.OrderNr = o.OrderNr
           ) as AntalBest
    FROM Ordrar o
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...