2010-12-13 131 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