MYSQL将所有用户对单个用户购买的商品的总投票和投票总和相加

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

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

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

想法?

最佳答案

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
点赞