我有3个表,如下例所示
班主任
ClassDetails
范围
ClassDetails表将为ClassMasterId提供多条记录,例如类的多个部分。范围表中的费用由范围开始和范围结束设置。此范围适用于班级人数。需要查询才能获得特定学生每个班级的总费用。
是否可以在MYSQL的单个查询中获取它?
答案 0 :(得分: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