gpt4 book ai didi

php - 连接三个表并计算值

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:59 25 4
gpt4 key购买 nike

我有如下三个表:

user             post                          answer

user_id post_id user_id answer_id post_id
1 1 2 1 4
2 2 3 2 2
3 3 2 3 2
4 4 1 4 1
5 3
6 2

所以,我有三个表 user、post 和 answer。在用户表中,我有我的用户的信息。在实际表中,还有其他列,如用户名和东西,但我省略了它们,因为它们与问题无关。

在帖子表中,我有用户在我的网页上发布的内容的信息。帖子 ID 只是每个帖子的 ID 号,而 user_id 表示哪个用户发布了帖子。

在答案表中,我有每个帖子上发布的答案信息。 answer_id 只是每个答案的 ID 号,而 post_id 表示答案发布在哪个帖子上。

我想用这三个表做的是我想按照答案最多到最少答案的顺序选择 user_id。

在这种情况下,user_id 1 发布了一个帖子 (post_id 4) 并且 post_id 4 得到了一个答案 (answer_id 1),user_id 2 发布了两个帖子(post_id 1 和 3)并且这些帖子得到了两个答案(answer_id 4 和5), user_id 3 发布了一个帖子 (post_id 2) 并得到了三个答案 (answer_id 2, 3, 6), user_id 4 没有发布帖子, 所以得到 0 个答案, 这将给我 user_id 的顺序是 3, 2, 1、4。

我希望我的问题有道理。对不起,一个复杂的问题。如果您有任何建议可以让我的 table 更有条理,请告诉我。我是 DB 的新手,所以我的表结构可能不是理想的方式。

最佳答案

试试这个:

select u.user_id, count(a.answer_id) as answerCount
from user u
inner join post p on p.user_id = u.user_id
inner join answer a on a.post_id = p.post_id
group by u.user_id
order by count(a.answer_id) desc;

关于php - 连接三个表并计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999007/

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