我在mysql中有18個表。Mysql從同一個ID中的多個表中總結列
所有的表都有一個列結果(例如a.result,b.result等) 我需要選擇18個表的結果並且將所有的id相加在一起。
感謝
我在mysql中有18個表。Mysql從同一個ID中的多個表中總結列
所有的表都有一個列結果(例如a.result,b.result等) 我需要選擇18個表的結果並且將所有的id相加在一起。
感謝
使用UNION ALL
(在所有表的ID 1),以獲得來自所有18個表中的所有值。然後使用SUM
函數。
查詢
SELECT SUM(t.result) FROM(
SELECT result FROM table_1
UNION ALL
SELECT result FROM table_2
UNION ALL
...........................
...........................
SELECT result FROM table_18
)t;
如果你想爲特定的ID從表中result
列值。然後,使用WHERE
。
這不是很漂亮,但像這樣的工作
SELECT a.result + b.result + c.result -- (All the way to r.result...)
FROM TableA a
INNER JOIN TableB b
ON a.ID = b.ID
INNER JOIN TableC c
ON b.ID = c.ID
-- (All the way to TableR ...)
你可能想,除非你是絕對肯定的ID將所有表格中始終存在考慮使用OUTER JOINS
。
@bassrek:其實問題不太清楚。我認爲所有列的id = 1的結果列值。然後,可以用'WHERE'條件。 – Wanderer
@Ulas - 在我刪除它之前,您看到我的評論。在發佈我的筆記後,我注意到了關於'WHERE'子句的最後一行,所以我刪除了:) – bassrek