📅  最后修改于: 2023-12-03 15:24:36.368000             🧑  作者: Mango
在 SQL 中,有时我们需要根据不同的表获取具有相同 ID 的数据,并将它们的某些列的总和计算出来。下面是一些方法来实现这个目标。
可以使用子查询和 UNION ALL 操作符来合并多个表的数据,并计算总和。
SELECT id, SUM(val) AS total_val
FROM (
SELECT id, val FROM table1
UNION ALL
SELECT id, val FROM table2
UNION ALL
SELECT id, val FROM table3
) AS combined
GROUP BY id;
另一种方法是使用 JOIN 操作符将多个表连接起来,并计算总和。以下是一个示例查询语句:
SELECT t1.id, SUM(t1.val + t2.val + t3.val) AS total_val
FROM table1 t1
JOIN table2 t2 ON t1.id = t2.id
JOIN table3 t3 ON t1.id = t3.id
GROUP BY t1.id;
可以使用子查询和 INNER JOIN 操作符来选择具有相同 ID 的数据,并计算总和。以下是一个示例查询语句:
SELECT t1.id, t1.total_val + t2.total_val + t3.total_val AS total_val
FROM (
SELECT id, SUM(val) AS total_val FROM table1 GROUP BY id
) AS t1
JOIN (
SELECT id, SUM(val) AS total_val FROM table2 GROUP BY id
) AS t2 ON t1.id = t2.id
JOIN (
SELECT id, SUM(val) AS total_val FROM table3 GROUP BY id
) AS t3 ON t1.id = t3.id;
以上是三种方法在 SQL 中获取具有相同 ID 和不同表的列的总和。选择最适合您项目需求的方法进行实现即可。