簡體   English   中英

MySQL和多個表

[英]MySQL sum with multiple table

我有三張桌子。

result: result_id, person_id, result
area: person_id, district_id
district:  province_id, district_id

我想要SUM(result.result) GROUP BY province_id

但是由於area.person_id具有多個person_id因此當我SUM(result.result)時,我SUM(result.result)得到兩倍的結果或三倍的值,從而增加了area.person_id中的area.person_id

你能幫忙嗎。

使用帶有DISTINCT的子查詢刪除重復項。

SELECT province_id, SUM(result)
FROM (
  SELECT DISTINCT d.province_id, r.person_id
  FROM result AS r
  JOIN area AS a ON r.person_id = a.person_id
  JOIN district AS d ON a.district_id = d.district_id) AS p
JOIN result AS r ON p.person_id = r.person_id
GROUP BY province_id

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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