次のスキーマを持つmysqlテーブルがあります
item varchar(20)
count int
アイテムをカテゴリに分類するチャートがあります (item1 と item2 は cat1 と item3 に属し、item4 は cat4 に属しますが、それはテーブルになく、テーブルを作成できません。
cat1 と cat2 に存在するアイテムの数が必要です。テーブルと内部クエリを結合せずにこれを行うことはできますか?
あなたはこれを行うことができます:
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