来自多个表的mysql sum列在同一个id中

时间:2016-09-29 15:02:30

标签: php mysql sql-server

我在mysql中有18个表。

所有表都有一列Result(ex a.result,b.result等..) 我需要为所有id选择18 table和sum的结果。

d.id 1 = a.result + b.result + c.result(所有表中的id为1)

由于

2 个答案:

答案 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