次の MySQL テーブルがあります。B_ID は、Table_B の ID 列を指す外部キーです。
---------- -----------
|Table_A | |Table_B |
---------- -----------
|B_ID int| |ID int |
---------- |VALUE int|
-----------
Table_A に外部キーとして表示される ID のみを考慮して、Table_B の VALUE 列の合計を計算したいと考えています。また、Table_B の各行を最大 1 回追加したいと考えています。
したがって、テーブルに次のデータが入力されているとします。
------ ------------
|B_ID| |ID | VALUE|
------ ------------
|1 | |1 | 50 |
|2 | |2 | 100 |
|2 | |3 | 200 |
------ ------------
合計は 150 になります (50 + 100 として計算されます)。
私が現在使用しているクエリは次のとおりです。
SELECT SUM(b.VALUE)
FROM Table_B b
WHERE b.id IN (SELECT DISTINCT B_ID FROM Table_A)
ただし、可能であればサブクエリは避けたいと思います。サブクエリなしでこれを行う方法についてのアイデアはありますか?
注: このクエリ自体は、より大きなクエリのサブクエリであるため、選択できる列は 1 つだけです。