簡體   English   中英

用於求和另一個表中值的 MySQL 查詢

[英]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_sumChild_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM