繁体   English   中英

创建视图但出现错误“视图 SELECT 在 FROM 子句中包含子查询”

[英]Creating view but get error “Views SELECT contains subquery in the FROM clause”

这是我正在使用的代码;

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;

我正在尝试计算每个特定 integer 有多少行 OrderNr,然后将其与相应的 Kundnummer 连接。 这部分独立工作;

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

但我无法用它创建视图。

MySQL 不允许视图的FROM子句中的子查询。 啊!

您可以将其替换为相关的子查询:

这是我正在使用的代码;

CREATE VIEW MostBuys AS
    SELECT o.Kundnummer,
           (SELECT COUNT(*) AS AntalBest
            FROM OrderContent oc
            WHERE oc.OrderNr = o.OrderNr
           ) as AntalBest
    FROM Ordrar o

您可以使用聚合来解决 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM