我有两个表,在这两个表中,我都有一个名为“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/