gpt4 book ai didi

mysql - SQL加入一对多关系 - 计算每张图片的票数?

转载 作者:IT王子 更新时间:2023-10-28 23:49:40 27 4
gpt4 key购买 nike

好的,所以我有 2 个表:

images                           votes
---------------------------- --------------------
image_id | name | square_id vote_id | image_id
---------------------------- --------------------
1 someImg 14 1 45
2 newImg 3 2 18
3 blandImg 76 3 1
... ...
n n

这是一对多的关系。每个图像可以有多个投票,但一个投票只能与一个图像相关。我正在尝试生成一个连接查询,它将显示图像 ID 以及它在指定条件下的投票数(例如,基于 square_id)。因此查询结果看起来类似于:

query_result
----------------------
image_id | vote_count
----------------------
18 46
26 32
20 18
...
55 1

但我能做的最好的是:

query_result
----------------------
image_id | vote_id
----------------------
18 46
18 45
18 127
26 66
26 43
55 1

看到问题了吗?每个 image_id 都针对它拥有的每个 vote_id 多次列出。这是产生这个的查询:

SELECT images.image_id, votes.vote_id 
FROM votes JOIN images ON images.image_id=votes.image_id

我似乎无法创建一个 vote_count 列,该列是该图像拥有的所有投票的总和。有没有什么方法可以让我使用 count() 函数来做到这一点,而我根本不知道?

最佳答案

您需要 GROUP BY images.image_id 并使用 COUNT(votes.vote_id):

SELECT images.image_id, COUNT(votes.vote_id) AS cote_count
FROM votes
JOIN images ON images.image_id=votes.image_id
GROUP BY images.image_id

关于mysql - SQL加入一对多关系 - 计算每张图片的票数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18571270/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com