2つのテーブルがあるとしましょう
Table1:
product_id, design1, design2
1 A C
2 B A
Table2:
product_id, value
1 10
2 10
ここで、すべての製品の特定のデザインのすべての値を合計したいと思います。
SELECT designA, SUM(value) FROM (
SELECT b.design1 AS designA, SUM(value) AS value FROM table2 AS a LEFT JOIN table1 AS b ON a.product_id = b.product_id GROUP BY b.design1) AS T GROUP BY designA
It gives me this:
designA SUM(value)
A 10
B 10
問題は、ユーザーが table1 で design2 を指定した場合、design1 の値が何であれ、自動的に design2 に追加されることです。design2 が design1 列に存在しない場合、結果の新しい行になります。
望ましい結果は次のとおりです。
designA SUM(value)
A 20
B 10
C 10