【问题标题】:MYSQL: JOIN makes SUM doubleMYSQL:JOIN 使 SUM 加倍
【发布时间】:2011-08-06 15:44:19
【问题描述】:

这应该很容易。相信我,我已经研究了好几个小时了。我的查询:

SELECT not_piece.pid, part.name AS 'Part Name', SUM(qty_left) AS 'In Stock'
FROM not_piece 
JOIN part ON not_piece.pid = part.pid 
GROUP BY part.name;

只有两张表,not_piece 和 part。

select qty_left 
from not_piece 
where pid='M-MP-007r8'; 

返回 5。

由于 part.name 在部件表中出现了两次(没关系),所以总和是 10,而不是 5。

如何在不加倍总和的情况下进行此连接?

谢谢。

【问题讨论】:

  • 我会按 part.name,not_piece.pid 分组

标签: mysql join sum


【解决方案1】:
SELECT t.pid, p.name AS 'Part Name', t.InStock AS 'In Stock'
    FROM (SELECT pid, SUM(qty_left) AS InStock
              FROM not_piece
              GROUP BY pid) t
        INNER JOIN part p
            ON t.pid = p.pid

【讨论】:

    【解决方案2】:

    使用您的 GROUP BY,尝试按您的主键 pid 进行分组:

    SELECT not_piece.pid, part.name AS 'Part Name', SUM(qty_left) AS 'In Stock'
    FROM not_piece 
    JOIN part ON not_piece.pid = part.pid 
    GROUP BY part.pid;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 2023-04-08
      • 1970-01-01
      • 2015-03-10
      相关资源
      最近更新 更多