这已经有一段时间,因为我做了任何的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
中的记录数 - 反之亦然。我认为这是我的加入,或我的分组...的问题,但似乎无法让它出来的权利!