我有两个表,位置和库存

地点:

locationID | locationName |
----------------------------
     1     |     place1
     2     |     place2
     3     |     place3


库存

locationID | itemID | total
-------------------------------
     1     |    a   |    6
     1     |    b   |    2
     2     |    a   |    1


然后,我有这样的查询:

Select locationID, sum(total) as totalItemCount FROM Locations, inventory GROUPBY locationID


这将返回如下结果:

    locationID | totalItemCount
   -------------------------
        1      |      8
        2      |      1


我想看到的结果将具有零或null的locationID 3。我只需要它出现。

最佳答案

嗯,您需要一个LEFT JOIN,然后像下面这样,而不是INNER JOIN。另外,请注意,我已经修改了查询并使用了ANSI样式显式连接语法,这比您当前使用的旧样式语法要好得多。

Select l.locationID,
sum(i.total) as totalItemCount
FROM Locations l
LEFT JOIN inventory i ON l.locationID = i.locationID
GROUP BY l.locationID;

关于mysql - 合并两个mySQL表sum()不会返回零或null的条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32514115/

10-11 20:34