【发布时间】:2016-03-09 23:04:03
【问题描述】:
自从我做任何 MySQL 以来已经有一段时间了,所以我可能只是在这里忘记了一些基本的东西 - 但这是我的情况:
(我的表格的简化版)
表 A(2 行)
d_id
d_nm
d_active
表 B(10 行匹配 d_id #1,0 行匹配 d_id #2)
t_id
t_nm
d_id
t_active
表 C(11 行匹配 d_nm #1(共 496 行),0 行匹配 d_nm #2)
c_id
c_nm
d_nm
尺寸1
大小2
查询:
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 中的记录数 - 反之亦然。我假设这是我的 Join 或 Group By 的问题......但似乎无法让它正确出现!
【问题讨论】:
标签: mysql join count group-by sum