這已經有一段時間,因爲我做了任何的MySQL,所以我可能只是忘了一些基本的東西在這裏 - 但這裏是我的情況:COUNT和SUM成倍
(的簡化版本我表)
表A(2行)
D_ID
d_nm
d_active
表B(符合D_ID#1 10行,匹配D_ID#2 0行)
T_ID
t_nm
D_ID
t_active
表C(11個與d_nm#1匹配的行(共49個6)中,匹配d_nm 2#)
C_ID其中0行
c_nm
d_nm
尺寸1
size2個
查詢:
SELECT
a.d_id,
a.d_nm,
COUNT(b.t_id) AS tcount,
SUM(c.size1+c.size2) AS size
FROM TableA a
LEFT JOIN TableB b
ON (b.d_id=a.d_id AND b.t_active=1)
LEFT JOIN TableC c
ON (c.d_nm=a.d_nm)
WHERE a.d_active=1
GROUP BY a.d_id,a.d_nm
ORDER BY a.d_nm
期望:
D_ID --- --- d_nm --- TCOUNT大小
1 ------- ------- D1 10 ----- --- 496
2 ------- ------- D2 0 0 ----------
實際結果:
D_ID --- d_nm --- tcount ---大小
1 ------- d1 ------- 110 ------- 5,456
2 ------- d2 ------- 0 ---------- 0
由於某種原因,它將tcount
的結果乘以size
中的記錄數 - 反之亦然。我認爲這是我的加入,或我的分組...的問題,但似乎無法讓它出來的權利!