[英]MySQL query for summing values in another table
我有幾張有父子關系的桌子。 例如,我想將 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匹配在parent_table每個項目。
如何?
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
這是我的頭頂,但怎么樣
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
這並不能完全回答問題,但可能會幫助某人,因為這是我的解決方案。 (我知道它缺少 JOIN)並且不知道此解決方案在大型數據庫上的效率。
SELECT
Parent_table.*,
(SELECT
SUM(Child_table.column_to_sum)
FROM Child_table
WHERE Child_table.id = Parent_table.id)
FROM Parent_table
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.