对具有匹配列的行内容求和

时间:2015-07-29 21:30:21

标签: php mysql

是的,我知道。标题很愚蠢,难以理解。

问题:

有一个DB1和一个DB2

DB1column名为idpriceid301等每个项目的唯一编号,依此类推。此id中的每个DB中只有一个。

DB2包含一个名为id的列和一个名为price的列。此DB有责任通过id脚本收集有关每个php(项目)的数据。

这意味着多行具有相同的唯一id

要展示的图片:

Multiple Rows

我正在尝试做什么:

一个查询id 的脚本(将id与另一个表匹配),sum列出所有price列相同的{{1} }}

我理解id

innerjoin

但我想在显示之前SELECT db1.id, db2.price FROM db1 INNER JOIN db2 ON db1.id=db2.id; 所有sum行。我该怎么办?

2 个答案:

答案 0 :(得分:1)

你想要的是这个:

(我想你也想显示db1.price(或db1中的其他字段,否则没有意义有这个连接)

SELECT db1.id, db1.price, db2s.price -- rest of db1 fields here
FROM db1
INNER JOIN (select id, sum(price) price from db2 group by id) as db2s
ON db1.id=db2s.id;

SQLFIDDLE

答案 1 :(得分:0)

我认为你不需要加入。这应该足够了:

SELECT id, sum(price) as price_sum FROM db2 GROUP BY id

这应该给你2列:

  • 价格的ID
  • 给定价格ID的所有价格的总和