gpt4 book ai didi

mysql - SQL 中具有多个连接的复杂 where 子句

转载 作者:行者123 更新时间:2023-11-28 23:38:43 25 4
gpt4 key购买 nike

假设我有一个数据库,我在其中跟踪多个足球联赛的统计数据。我的表格和相关栏目如下。

联赛:id球队:id,league_id玩家:id,team_id目标:id、player_id、num_goals

如您所见,这本质上是一系列 hasManyThrough 关系。一个联赛有很多球员通过球队。一个团队通过球员有很多目标。等等 我要崩溃的地方是编写一个查询,按联赛汇总进球数。到目前为止,我的最大努力是这样的:

select('id', 'name') from leagues,
join teams where ('teams.id' = 'leagues.id'),
join players where ('players.id' = 'teams.id'),
join goals where ('goals.id' = 'players.id'),
sum('goals.num_goals');

该查询的目标是返回一组联赛 ID、联赛名称和该联赛中球员的进球数。

最佳答案

您的联接没问题,问题在于您如何求和。

Sum 语句应该在select 语句中,并且最好与group by 语句一起使用。你也不应该用 ' 符号包裹列名

select leagues.id, leagues.name, sum(goals.num_goals) from leagues
join teams on teams.id = leagues.id
join players on players.id = teams.id
join goals on goals.id = players.id
group by leagues.id, leagues.name;

关于mysql - SQL 中具有多个连接的复杂 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34981823/

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