我有两张桌子,一张显示用户从各个商店购买的商品,另一张则详细说明谁买了什么。
产品表A是:
prod_id
site_name
product
用户表B是:
user_id
prod_id
我需要计算从某个商店购买的产品总数。我不能简单地从表A算起,因为可能有几个用户购买相同的产品,但保持数据整洁,我将其存储如上。
我是否应该在表B中包含site_name,以便更容易简单地计算,或者可以在一个查询中完成?为了几个查询,我宁愿不要膨胀表,因为我认为数据库设计不好但是无法计算出如何进行计数。
有可能吗?
答案 0 :(得分:1)
您使用加入:
SELECT COUNT(1)
FROM A JOIN B ON A.prod_id = B.prod_id
WHERE A.site_name = 'foo'
答案 1 :(得分:0)
select count(*)
from
A inner join B on A.prod_id = B.prod_id
where
site_name = 'the site name'
and
user_id = '1'