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.

これはこれまでの私のクエリです(カウントと合計のみを返し、実際には機能しません)。

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

そして、これが私のスキーマの写真です: 私のデータベーススキーマ

私を助けてください!ハマった!

4

1 に答える 1

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
于 2012-12-01T23:39:54.627 に答える