2013-07-29 109 views
-1

我有一個表sRecords了一些數據和與針對每個sRecordID(PK)中的多個行和一個fees列三個不同的表,MySQL查詢 - 從三個不同的表

問題是
獲取總和的 我怎麼能從sRecordID的所有三張表中獲得sum的總費用?

另外三個表是具有feessRecordID(FK sRecords.sRecordID)cFees,oFees和iFees

編輯
我已經有sRecordID,所以我不認爲任何JOIN將要在這裏工作

+1

你可以提供一些樣本數據,也可以提供SQL撥弄它更多的好? –

回答

1
select t.sRecordID,sum(t1.Fees)+sum(t2.Fees)+sum(t3.Fees) `Sum Fees` 
from sRecords t 
left join cFees t1 on t1.feeid=t.sRecordID 
left join oFees t2 on t2.feeid=t.sRecordID 
left join iFees t3 on t3.feeid=t.sRecordID 
group by t.sRecordID 
0
SELECT 
    sRecords.sRecordID, 
    SUM(cFees.fees) + SUM(oFees.fees) + SUM(iFees.fees) as total_fees 
FROM sRecords 
LEFT JOIN cFees ON sRecords.sRecordID = cfees.sRecordID 
LEFT JOIN iFees ON sRecords.sRecordID = ifees.sRecordID 
LEFT JOIN oFees ON sRecords.sRecordID = ofees.sRecordID 
GROUP BY sRecords.sRecordID 
+0

「GROUP BY 1」會做什麼。 – zzlalani

+2

指定按SELECT列表中的第一個表達式(列)進行分組的方法。在這種情況下,sRecordID – andrewb

+0

按第一個選定的列進行分組,在本例中爲'sRecords.sRecordID'將對其進行更新,以便對那些不熟悉SQL的用戶更加透明 – elzaer