2015-04-12 108 views
-1

我有3個表,如下面的例子查詢加入3個不同的表中MySQL和SUM

  1. 班主任

    • ClassMasterId(主鍵)
    • CLASSID
  2. 給出
  3. ClassDetails

    • ClassMasterId(映象ClassMaster.ClassMasterId)
    • ClassSize
  4. 範圍

    • CLASSID(映象ClassMaster.ClassId)
    • 的RangeStart,rangeEnd的,費

ClassDetails表將有一個以上ClassMasterId的記錄,就像一個類的多個部分一樣。範圍表中的費用由範圍開始和範圍結束設置。此範圍適用於班級人數。需要查詢以獲得特定學校每個班級的總費用金額。

是否有可能在MYSQL的單個查詢中得到它?

回答

0
SELECT 
    cm.ClassMasterId, r.RangeStart, r.RangeEnd, r.ClassSize, SUM(r.Fees) AS 'Fees' 
FROM 
    ClassMaster cm 
     INNER JOIN ClassDetails cd ON cd.ClassMasterId = cm.ClassMasterId 
     INNER JOIN Range r ON r.ClassId = cm.ClassId 
GROUP BY 
    cm.ClassMasterId, r.RangeStart, r.RangeEnd, r.ClassSize 

因爲這是MySQL和你的鑰匙有相同的名字,如果你願意,你可以使用using語法的聯接:

SELECT 
    cm.ClassMasterId, r.RangeStart, r.RangeEnd, r.ClassSize, SUM(r.Fees) AS 'Fees' 
FROM 
    ClassMaster cm 
     INNER JOIN ClassDetails cd USING (ClassMasterId) 
     INNER JOIN Range r USING (ClassId) 
GROUP BY 
    cm.ClassMasterId, r.RangeStart, r.RangeEnd, r.ClassSize