2012-12-01 4 views
1

지금은 복잡한 웹 사이트를 작성 중입니다. 조금만 붙어 있습니다. 항목의 범주에 대한 데이터를 반환하는 쿼리를 작성하고 있습니다. 범주 이름, ID 및 설명을 포함하는 각 범주의 배열을 반환해야하며 해당 범주를 사용하는 항목의 수와 해당 범주의 각 항목의 값이 합산됩니다. 단일 응답을 반환하는 쿼리 병합

즉, 나는 돌아가려면 :

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

이 (그것은 단지 수와 합계를 반환, 그들은 정말 안 일) 지금까지 내 쿼리입니다. My database schema

이 제발 도와주세요 :

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

그리고 여기 내 스키마의 사진입니다! 나는 붙어있다!

답변

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

관련 문제