0

2 つのテーブルがあります。1 つはユーザーがさまざまなストアから購入したアイテムを示し、もう 1 つは誰が何を購入したかを詳しく示しています。

製品の表 A は次のとおりです。

prod_id
site_name
product

ユーザー用の表 B は次のとおりです。

user_id
prod_id

特定の店舗から購入した商品の総数を数える必要があります。複数のユーザーが同じ製品を購入している可能性があるため、表 A から単純に数えることはできませんが、データを整理するために上記のように保存します。

単純に数えやすくするために、今後もテーブル B に site_name を含める必要がありますか、それとも 1 つのクエリで行うことができますか? いくつかのクエリのためにテーブルを肥大化させたくないのですが、それはデータベースの設計が悪いと思いますが、それ以外の方法でカウントを行う方法がわかりません。

出来ますか?

4

2 に答える 2

1

あなたは結合を使用します:

SELECT COUNT(1)
FROM A JOIN B ON A.prod_id = B.prod_id
WHERE A.site_name = 'foo'
于 2012-09-28T17:33:38.877 に答える
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'
于 2012-09-28T17:40:22.210 に答える