1

次のスキーマを持つmysqlテーブルがあります

item varchar(20)
count int 

アイテムをカテゴリに分類するチャートがあります (item1 と item2 は cat1 と item3 に属し、item4 は cat4 に属しますが、それはテーブルになく、テーブルを作成できません。

cat1 と cat2 に存在するアイテムの数が必要です。テーブルと内部クエリを結合せずにこれを行うことはできますか?

4

2 に答える 2

1

あなたはこれを行うことができます:

SELECT 
  c.categoryname, 
  SUM(IFNULL(i.`count`,0))
FROM 
(
   SELECT 'item1' itemname, 'cat1' CategoryName
   UNION ALL
   SELECT 'item2' , 'cat1'
   UNION ALL
   SELECT 'item3' , 'cat2'
   UNION ALL
   ...
) c
LEFT JOIN items i ON c.itemname = i.item
GROUP BY c.categoryname

SQL フィドルのデモ

于 2012-11-19T08:09:28.630 に答える