0

我想使用以下代码创建视图:

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  

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

4

1 回答 1

0

正如您所注意到的,这种语法在 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;

这将在视图中起作用。

于 2015-04-10T01:16:22.003 回答