我在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