2010-12-13 105 views
0

我有4个表MySQL查询问题

Table: Category 
    CategoryID (int) 
    Name (varchar) 
Table: Products 
    ProductID (int) 
    CategoryID (int) 
    Name (varchar) 
    Description (text) 
Table: Sales 
    SalesID (int) 
    ProductID (int) 
Table: Links 
    LinkID (int) 
    ProductID (int) 

现在我需要显示的数据为:我怎样才能做到这一点

CategoryName  Total Products  Total Sales  Total Links 
    ABC    5     12   50 
    XYZ    12     26   10 

,可在单个查询

帮助表示赞赏

谢谢

+0

我可以看到你是如何关联'产品','销售'和'链接',但是什么列链接'类别'与这些? – 2010-12-13 07:37:53

+0

是的,显然这里有一个缺失的链接。 – 2010-12-13 07:47:33

+0

编辑:我添加了CategoryID到产品表 – 2010-12-13 07:52:28

回答

1
SELECT c.Name AS "CategoryName", COUNT(p.ProductID) AS "TotalProducts", COUNT(s.SalesID) AS "TotalSales", COUNT(l.LinkID) AS "TotalLinks" 
FROM Category c 
INNER JOIN Products p ON p.CategoryID = c.CategoryID 
INNER JOIN Sales s ON s.ProductID = p.ProductID 
INNER JOIN Links l ON l.ProductID = s.ProductID; 

我不知道如何将数据看起来像,但你可能需要添加一个GROUP BY的地方,如果你有重复或可选ORDER BY如果需要排序在任何列

+0

,感谢帮助 – 2010-12-15 06:55:55

+0

,我把内部连接换成了左边连接,并且帮助。 – 2010-12-15 06:56:45