MySQL查询另一个表中的求和值

时间:2010-12-02 17:37:38

标签: mysql join inner-join

我有几张有父子关系的桌子。我想将sum函数应用于子表的一列,并将其与父表的所有数据一起返回。例如。

Parent_table
ID, Date, Title

Child_table
ID, another_id, column_to_sum
//(ID is foreign key pointing to Parent_table)

Sample Data in Parent_table
1, 22-11-2010 00:00:00 , 'Some Title'
2, 13-11-2010 00:00:00 , 'Some Title 2'

Sample Data in Child_table
1, 1, 10
1, 2, 11
1, 8, 3
2, 5, 11
2, 8, 6

查询的输出应返回parent_table中的所有列,并附加一列,即将column_to_sumChild_table的值与{ID = 1}}中的{{1}}的值相加,以匹配与ID匹配的parent_table中的每个项目。 / p>

如何?

3 个答案:

答案 0 :(得分:3)

    SELECT p.ID,
      p.Date,
      p.Title,
      SUM(c.column_to_sum) Total
    FROM Parent_Table p LEFT JOIN
       Child_Table c ON p.ID = c.ID
    GROUP BY p.ID

答案 1 :(得分:2)

这是我的头脑,但是如何呢?

SELET p.ID,
  p.Date,
  p.Title,
  SUM(c.column_to_sum) Total
FROM Parent_Table p INNER JOIN
   Child_Table c ON p.ID = c.ID
GROUP BY p.ID,
      p.Date,
      p.Title

答案 2 :(得分:0)

这不能完全回答问题,但可能会帮助某人,因为这是我的解决方案。 (我知道它缺少JOIN)并且不知道此解决方案在大型数据库上的效率。

SELECT 
    Parent_table.*,
        (SELECT 
            SUM(Child_table.column_to_sum) 
        FROM Child_table 
        WHERE Child_table.id = Parent_table.id)
FROM Parent_table