2012-12-01 22 views
1

我正在寫一個複雜的網站,現在我有點卡住了。我正在編寫一個查詢,返回項目類別的數據。我需要它爲包含類別名稱,標識和說明的每個類別返回一個數組,以及使用該類別的項目數量和該類別下每個項目的值。合併查詢以返回單個響應

換句話說,我想回到:

categoryid = 1 
name = category name 
description = category description 
totalavailable = number of items in category 
totaldownloads = downloads value from each item in category added together. 

這是我的查詢到目前爲止(它只返回計數和總和,他們真的不工作)。

SELECT 
    category, SUM(downloads) as totaldownloads, count(*) as totalavailable 
FROM 
    downloads 
WHERE 
    category IN(SELECT categoryid FROM categories) 

這裏是我的架構的照片: My database schema

請幫幫我!我卡住了!

回答

0

查詢幾乎是完美的,你只需要JOIN兩個表來獲取所有值:

SELECT 
    c.categoryid, 
    c.name, 
    c.description, 
    COUNT(*) AS totalavailable, 
    SUM(d.downloads) AS totaldownloads 
FROM 
    categories c 
INNER JOIN 
    downloads d 
ON 
    c.categoryid = d.category 
WHERE 
    /* whatever */ 
GROUP BY 
    c.categoryid, 
    c.name, 
    c.description 
+0

謝謝!這適用於我的代碼。我喜歡這裏的快速反應。 – Forest