将两个表中的列相加到具有两列的第三个表中
Posted
技术标签:
【中文标题】将两个表中的列相加到具有两列的第三个表中【英文标题】:sum columns from two tables into third table with two columns 【发布时间】:2015-07-29 20:11:11 【问题描述】:我对 mysql 还很陌生。 我正在尝试从两个不同表中的两列中获取汇总数据(浮点数)并创建第三个表,该表共有两列和一行,即总和... 这是我到目前为止得到的:
SELECT SUM(column_from_table1),
SUM(column_from_table2)
From table1, table2
它给了我 2 列错误的 numbers(sum)
。
我哪里弄错了?
如果您需要更多数据来帮助我,请告诉我。
【问题讨论】:
您可以编辑您的问题,包括标题。 谢谢 Honza,我今天很慢 您的问题是,当您选择from table1, table2
时,一个隐含的join 就完成了(尝试select * from table1, table2
看看这意味着什么)。如果您只想汇总 table1 或 table2 中的记录,请使用 2 个单独的查询。此外,将总和存储在单独的表中也不是一个好习惯,这通常不是必需的,而且您正在复制数据。
我忘了说,这只是为了在可视表中显示数据(来自读取 MySQL 语言的 wordpress 插件)。我没有插入任何数据只是阅读。
您需要在单个查询中使用它吗?您可以使用UNION
:SELECT SUM(column_from_table1) FROM table1 UNION SELECT SUM(column_from_table2) FROM table2
。只是,它不会返回 2 列,而是 2 行。
【参考方案1】:
您的问题是,当您选择from table1, table2
时,会生成一个隐式join。要么使用 2 个查询,要么使用一个子查询:
SELECT SUM(column_from_table1) AS SUM1,
(SELECT SUM(column_from_table2) FROM table2) AS SUM2
From table1
【讨论】:
以上是关于将两个表中的列相加到具有两列的第三个表中的主要内容,如果未能解决你的问题,请参考以下文章
如何匹配两个不同表中的列并将选定的列输出到 MySQL 中的第三个表?