我有几张有父子关系的桌子。我想将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_sum
中Child_table
的值与{ID = 1}}中的{{1}}的值相加,以匹配与ID匹配的parent_table中的每个项目。 / p>
如何?
答案 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