4

我想仅对单个用户购买的商品进行总的赞成票和反对票。我有一张大桌子,所以我不想总结每个人对每个项目的所有投票,只是特定用户购买的项目。

到目前为止,这是我的查询:

select SUM(purchaseyesno) AS tots, SUM(rating=1) AS yes, SUM(rating=0) AS no, item_id
from items_purchased
where purchaser_account_id=12373 
group by item_id

正如您所料,这些总和只是汇总用户 12373 的信息,因此它只是一个值。我不确定如何获取用户 12373 购买的所有 item_ids 购买。

我确定有某种子查询,我需要包含嵌套的东西,但我一无所知。

这是我希望我的数据看起来的样子,item_id=3,4,5 都是由 user=12373 购买的。而 item_id=1,2,6 被其他用户购买。

item_id    tots    yes    no
   3        7       4      2
   4        5       1      3
   5        1       0      1

想法?

4

1 回答 1

2
select item_id, SUM(purchaseyesno) tots, SUM(rating = 1) yes, SUM(rating = 0) no
from items_purchased
where item_id in (
    select item_id from items_purchased
    where purchaser_account_id = 12373
)
group by item_id
于 2012-04-05T02:57:05.637 回答