【发布时间】:2014-02-24 02:54:17
【问题描述】:
我在提出 SQL 查询以加入并获取我的库存表计数时遇到问题。
我有一个与库存表没有关联的产品表。库存表有一个名为“product_id”的产品表的外键。产品的库存表中可以有多行。我想获取所有产品的库存记录计数。如果该产品没有库存记录,则应显示 0。
【问题讨论】:
我在提出 SQL 查询以加入并获取我的库存表计数时遇到问题。
我有一个与库存表没有关联的产品表。库存表有一个名为“product_id”的产品表的外键。产品的库存表中可以有多行。我想获取所有产品的库存记录计数。如果该产品没有库存记录,则应显示 0。
【问题讨论】:
在我看来,您只需要一个简单的(左)加入和分组依据。类似的东西
select p.product_id, count(p.product_id)
from products p
left join inventory i on p.product_id = i.product_id
group by p.product_id;
最好有一个更精确的架构以及您已经尝试过的结果。
注意:我假设您的列在products 表中也称为product_id,如果它是简单的id,当然用p.id 替换p.product_id。
【讨论】:
谢谢,原来是我的 GROUP BY 让我失望了。我是按inventory.product_id而不是product.id分组的,所以我只是从匹配的inventory表中取回条目。
【讨论】: