gpt4 book ai didi

mysql - 选择具有固定奖杯数和积分的球员

转载 作者:行者123 更新时间:2023-11-29 07:35:47 25 4
gpt4 key购买 nike

我需要打印出拥有 2 个奖杯的球员,并且我需要对他们所有比赛获得的积分求和。我需要使用我的数据库中的 3 个表 enter image description here

1.我需要 trophy_count ,我可以用这一步 ->

select surname, count(t.player_id) as trophy_count

from dbo.Players p
left join Trophies t on t.player_id=p.id

group by p.surname

所以,SQL 给了我这个

enter image description here

2.打印出所有获得的积分->

select name, sum(points) as points


from dbo.Players p
inner join dbo.Stats s on s.player_id=p.id

group by p.name

SQL 给了我这个:

enter image description here

我想在一个查询中执行此操作:

select name, sum(points) as points, COUNT(t.player_id) as trophy_count


from dbo.Players p
inner join dbo.Stats s on s.player_id=p.id
inner join dbo.Trophies t on t.player_id=p.id

group by p.name

SQL 给了我这个,SQL 将我所有的信息乘以 x 2,这是错误的

enter image description here

而且,在这次失败中,我不知道我需要写什么,以选择那些拥有 2 个奖杯并总结他们所获得积分的球员。 (Lonzo 球 21 分 2 奖杯,Kristaps Porzingis 17 分 2 奖杯)。

最佳答案

为了获得更安全的结果,请将所有当前查询包装在一个子查询中。

SELECT p.id, p.name, p.surname, 
IFNULL(trop.trophy_count, 0),
IFNULL(pts.points, 0)
FROM dbo.Players p
LEFT JOIN
(
select p.id, count(t.player_id) as trophy_count
from dbo.Players p
left join Trophies t on t.player_id=p.id
group by p.id
) trop ON p.id = trop.id
LEFT JOIN
(
select p.id,sum(points) as points
from dbo.Players p
inner join dbo.Stats s on s.player_id = p.id
group by p.id
) pts ON p.id = pts.id

关于mysql - 选择具有固定奖杯数和积分的球员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48923822/

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