gpt4 book ai didi

mysql - 将 3 个表中的数据收集到 1 个查询中

转载 作者:可可西里 更新时间:2023-11-01 08:52:22 25 4
gpt4 key购买 nike

我的 MySQL 数据库中有三个不同的表。

表用户:(id, score, name)
表团队:(id,标题)
表 team_Members: (team_id, user_id)

我想要做的是进行 1 个查询,查找给定用户 ID 所属的每个团队 ID,以及以下信息:

  1. 该团队的成员总数
  2. 团队名称
  3. 用户在团队中的排名(基于分数)

编辑:

期望的输出应该是这样的;

TITLE (of the group)      NUM_MEMBERS       RANK
------------------------------------------------
Foo bar team 5 2
Another great group 34 17
.
.
.

查询应该基于用户ID。

非常感谢帮助

最佳答案

我认为这个查询应该得到你所要求的

select t.id, t.title, count(m.user_id) members, (
select count(1)
from users u3
inner join team_Members m3 on u3.id = m3.user_id
and m3.team_id = t.id and u3.score > (
select score from users where name = 'Johan'
)
) + 1 score
from teams t
inner join team_Members m on t.id = m.team_id
where t.id in (
select team_id
from team_Members m2
inner join users u2 on m2.user_id = u2.id
where u2.name = 'Johan'
)
group by t.id, t.title

关于mysql - 将 3 个表中的数据收集到 1 个查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461587/

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