【问题标题】:Proper syntax for create view with a subquery?使用子查询创建视图的正确语法?
【发布时间】:2015-04-10 01:14:11
【问题描述】:

我想使用此代码创建视图:

SELECT t1.FirstName, t1.LastName, t2.Sum FROM Customer as t1,(SELECT CustomerID,Sum(Total) as Sum  FROM Invoice GROUP BY(CustomerID)) as t2 WHERE t1.CustomerID=t2.CustomerID 

对我来说有意义的方式是做

Create VIEW t2 as SELECT CustomerID,Sum(Total) as Sum  FROM Invoice GROUP BY(CustomerID)

Create VIEW CustomerInvoices as SELECT t1.FirstName, t1.LastName, t2.Sum FROM Customer as t1, t2  WHERE t1.CustomerID=t2.CustomerID  

但这给了我一个语法错误,所以我不确定如何调用主视图中的第一个视图

【问题讨论】:

    标签: sql phpmyadmin create-view


    【解决方案1】:

    正如您所注意到的,这种语法在 MySQL 中是不允许的(尽管在其他数据库中是允许的):

    SELECT t1.FirstName, t1.LastName, t2.Sum
    FROM Customer as t1 JOIN
         (SELECT CustomerID,Sum(Total) as Sum  FROM Invoice GROUP BY(CustomerID)
         ) t2 
         ON t1.CustomerID = t2.CustomerID;
    

    您可以将其改写为:

    SELECT c.FirstName, c.LastName, sum(total) as sum
    FROM Customer c JOIN
         Invoice i
         ON c.CustomerID = i.CustomerId
    GROUP BY c.FirstName, c.LastName;
    

    这将在视图中起作用。

    【讨论】:

      猜你喜欢
      • 2020-07-22
      • 1970-01-01
      • 2021-03-17
      • 2014-10-23
      • 2012-09-29
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 2018-05-25
      相关资源
      最近更新 更多