基本上我在表A上有大量的产品信息。这包括product_id,它是两个表的通用id。在表B中,我有一个投票列表,其中包括product_id,username,thevote(可能是+1或-1)。
所以基本上我想要一个'表A'表,其中一个附加列包含该product_ID所有投票的总和。我相信有一个简单的方法可以做到这一点。我认为使用'正确加入'。
我仍然希望它列出表A中的所有产品,无论他们是否只有+1或-1票。
非常感谢人们!
答案 0 :(得分:1)
您可以使用group by
语句和left join
类似:
select productName, sum(vote) as productVoteSum
from `products` p
left join `products_votes` pv on p.id = pv.productId
where productName like '%chocolat%'
group by p.id
order by productName;
答案 1 :(得分:0)
SELECT a.*, SUM(b.votes) FROM TableA a LEFT JOIN TableB b ON a.prouct_id=b.product_id
GROUP BY a.product_id
答案 2 :(得分:0)
您可以执行LEFT JOIN(遍历tableA上的所有信息并将SUM放入tableB上具有匹配的product_id的那些),然后通过其余列添加SUM(b.thevote)和group
SELECT a.product_id,a.productName,SUM(b.thevote)
FROM tableA a
LEFT JOIN tableB b ON a.product_id = b.product_id
GROUP BY a.product_id, a.productName