MySQL 右连接 SUM() 从表 B 到表 A 上的信息


MySQL RIGHT JOIN SUM() from Table B to Info on Table A

基本上我在表 A 上有大量的产品信息。这包括product_id,它是两个表上的公共 ID。在表格B上,我有一个投票列表,其中包括product_id,用户名,投票(可以是+1或-1)。

所以基本上我想要一个"表 A"表,其中包含一个附加列,其中包含该product_ID所有投票的总和。我相信有一种简单的方法可以做到这一点。我认为这是使用"右连接"。

我仍然希望它列出表 A 中的所有产品,无论它们是单个 +1 还是 -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;

您可以执行 LEFT JOIN(遍历表 A 上的所有信息并将 SUM 放入表 B 上具有匹配product_id的信息中),然后添加 SUM(b.thevote) 并按其余列分组

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
SELECT a.*, SUM(b.votes) FROM TableA a LEFT JOIN TableB b ON a.prouct_id=b.product_id
GROUP BY a.product_id