使用一个查询重组表结构或可能

时间:2012-09-28 17:29:57

标签: mysql sql

我有两张桌子,一张显示用户从各个商店购买的商品,另一张则详细说明谁买了什么。

产品表A是:

prod_id
site_name
product

用户表B是:

user_id
prod_id

我需要计算从某个商店购买的产品总数。我不能简单地从表A算起,因为可能有几个用户购买相同的产品,但保持数据整洁,我将其存储如上。

我是否应该在表B中包含site_name,以便更容易简单地计算,或者可以在一个查询中完成?为了几个查询,我宁愿不要膨胀表,因为我认为数据库设计不好但是无法计算出如何进行计数。

有可能吗?

2 个答案:

答案 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'