我在mysql中有18个表。
所有表都有一列Result(ex a.result,b.result等..) 我需要为所有id选择18 table和sum的结果。
d.id 1 = a.result + b.result + c.result
(所有表中的id为1)
由于
答案 0 :(得分:2)
使用UNION ALL
从所有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
。
答案 1 :(得分: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
。