1
MySQL的SUM不同行,我有以下MySQL表,其中B_ID是一個外鍵指向表-B的ID列:根據外鍵無子查詢
---------- -----------
|Table_A | |Table_B |
---------- -----------
|B_ID int| |ID int |
---------- |VALUE int|
-----------
我想計算的價值總和Table_B中的列僅考慮在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)
不過,我想避免,如果在所有可能有一個子查詢。任何想法如何做到這一點,而無需子查詢?
注:此查詢本身就是一個大的查詢子查詢,所以也只能選擇一列。
謝謝。這是一個很好的方法,儘管我不能將它用於真實場景,因爲查詢將嵌套在較大的查詢中,並且由於某些字段無法訪問,所以Table_A上的一些其他約束將無法工作(基本上,這裏所述的問題http://bugs.mysql.com/bug.php?id=16029) – Epicurus