Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SUM返回具有多个左联接的双值_Mysql_Sql - Fatal编程技术网

Mysql SUM返回具有多个左联接的双值

Mysql SUM返回具有多个左联接的双值,mysql,sql,Mysql,Sql,我有一个SQL查询,其中SUM aggregate函数只返回两倍的所有值。我完全不明白这是怎么发生的。这是一个问题 SELECT st.id, u.id AS user_id, st.student_code, spd.first_name, spd.middle_name, spd.last_name, spd.birth_date, classes.`class_name`, sections.`section_name`, sed.`roll_n

我有一个SQL查询,其中SUM aggregate函数只返回两倍的所有值。我完全不明白这是怎么发生的。这是一个问题

 SELECT 
  st.id,
  u.id AS user_id,
  st.student_code,
  spd.first_name,
  spd.middle_name,
  spd.last_name,
  spd.birth_date,
  classes.`class_name`,
  sections.`section_name`,
  sed.`roll_no`,
  sgd.first_name AS gardian_first_name,
  sgd.middle_name AS gardian_middle_name,
  sgd.last_name AS gardian_last_name,
  sgd.contact_no,
  SUM(sfd.`final_fee`) AS total_calculated_fee,
  SUM(sfd.`total_paid_amount`) AS total_paid_amount,
  SUM(sfd.`total_due_amount`) AS total_due_amount 
FROM
  students st 
  LEFT JOIN users u 
    ON st.`id` = u.`student_id` 
  LEFT JOIN student_personal_details spd 
    ON st.`id` = spd.`student_id` 
  LEFT JOIN student_gardian_details sgd 
    ON st.`id` = sgd.`student_id` 
  LEFT JOIN student_education_details sed 
    ON st.`id` = sed.`student_id` 
  LEFT JOIN student_hostel_details shd 
    ON st.`id` = shd.`student_id` 

  LEFT JOIN classes 
    ON sed.`class_id` = classes.`class_id` 
  LEFT JOIN sections 
    ON sed.`section_id` = sections.`id` 
    LEFT JOIN student_fee_details sfd 
    ON st.`id` = sfd.`student_id` 
WHERE st.is_active = 1 AND st.`id` = 2
GROUP BY sfd.`student_id` 
LIMIT 0, 10 
我在所有三个字段中都使用了distinct,但中间的一个字段返回1/4的值。
有谁能帮我一下吗

如果至少有两个连接最终为同一个值匹配多行,那么你会得到相乘的值-比如说
匹配两行,
a
b
,而
匹配两行,
1
2
。您的结果集现在将以所有组合包含4行:
a,1
a,2
b,1
b,2
。如果没有您的数据,我无法告诉您发生这种情况的原因,但它正在发生。那么您有什么建议?您需要确定哪些连接条件不会导致1-1匹配。同样,我们没有让您的数据删除“分组依据”并查看返回的行以查看哪些行是重复的。使用子查询并加入它们。