mysql - 连接两个表并将列值添加在一起

标签 mysql sql

我有两个表,在这两个表中,我都有一个名为“phone_number”的唯一列,然后是一个名为“spring”的列以及其他 3 列。 Spring 列具有数值。该表大约有 3000 行。我有一个重复的表,其中包含相同的信息,但只有大约 300 行。我想根据phone_number 唯一列组合两个表的 Spring 列的值。

我尝试过执行 MERGE 和 UNION,但我不太明白它们是如何工作的,并且不断出现语法错误。

SELECT
    accountstwo.phone_number, accountstwo.deposit_total, accountstwo.summer, accountstwo.total_remain,
    (
        SUM(accountstwo.spring) + SUM(accountstwonu.spring)
    ) spring
FROM accountstwo LEFT JOIN
     accountstwonu
     ON accountstwonu.phone_number = accountstwo.phone_number
GROUP BY phone_number;

我可以连接表,但它会创建一个名为 spring 的新列,其中仅包含组合列总计,而原始表的其他 2700 行返回为 NULL。我想保留 2700 行数据并合并其他 300 行数据。

最佳答案

这是你想要的吗?

SELECT a2.phone_number, a2.deposit_total, a2.summer, a2.total_remain,
       (COALESCE(a2.spring, 0) + COALESCE(SUM(a2nu.spring), 0)) as spring
FROM accountstwo a2 LEFT JOIN
     accountstwonu a2nu
     ON a2.phone_number = a2nu.phone_number
GROUP BY a2.phone_number, a2.deposit_total, a2.summer, a2.total_remain, a2.spring;

关于mysql - 连接两个表并将列值添加在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57498686/

相关文章:

Mysql 列出表和大小 - 按大小排序

使用服务器资源友好查询的 MySQL 大量更新 40K 行

php - MYSQL 列中的 Javascript 倒数计时器

mysql - 将值存储到整型变量中

java - Hibernate 与 JDBC 动态数据库连接

php - MySQL中如何优先显示最新记录?

sql - 按贷款数量分组(50)

php - MySQL & PHP - 选择 6 行,每行有不同的 'WHERE' 子句

codeigniter中的Mysql查询求和查询

Python SQL 单次提交与多次提交