我有以下 MySQL 表,其中 B_ID 是指向 Table_B 的 ID 列的外键:
---------- -----------
|Table_A | |Table_B |
---------- -----------
|B_ID int| |ID int |
---------- |VALUE int|
-----------
我想计算 Table_B 中 VALUE 列的总和,仅考虑在 Table_A 中显示为外键的 ID。另外,我想在 Table_B 中添加每一行最多一次。
因此,如果表中填充了以下数据:
------ ------------
|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)
但是,如果可能的话,我想避免使用子查询。关于如何在没有子查询的情况下执行此操作的任何想法?
注意:该查询本身是较大查询中的子查询,因此只能选择一列。