2016-09-29 86 views

回答

2

使用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

+0

@bassrek:其实问题不太清楚。我认为所有列的id = 1的结果列值。然后,可以用'WHERE'条件。 – Wanderer

+0

@Ulas - 在我删除它之前,您看到我的评论。在发布我的笔记后,我注意到了关于'WHERE'子句的最后一行,所以我删除了:) – bassrek

1

这不是很漂亮,但像这样的工作

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

相关问题