gpt4 book ai didi

MySQL查询根据其他表的多列从1个表中获取多个值

转载 作者:行者123 更新时间:2023-11-29 04:23:56 25 4
gpt4 key购买 nike

我有这个表结构(我们称这个表为 teams):

id | player1 | player2 | player3
1 | 13 | 25 | 50

还有这个(我们称这个表为 players):

id | pts
13 | 5
25 | 10
50 | 12

有没有一种方法可以编写一个查询来从 teams 表的一行中获取每个玩家的 pts 值?

例如,如果我想获取 player1 的 pts 值,我会执行如下操作:

select teams.id,players.pts from teams left join players on teams.player1=players.id

我需要同时为所有 3 名玩家执行此操作(实际上,有 18 名玩家,而不是 3 名 - 但同样的原则应该有效)。

我知道我可以遍历它们,但这似乎不是最佳解决方案。

最佳答案

我认为一个更好的主意是采用以下结构:

团队

team_id | name
----------------
1 | Team 1
2 | Team 2
3 | Team 3

玩家

player_id | pts
---------------
1 | 10
2 | 5
3 | 25

teams_players_xrefs

team_id | player_id
-------------------
1 | 1
1 | 2
2 | 3

然后使用以下查询:

SELECT
player_id,
pts
FROM
teams_players_xrefs
INNER JOIN
players USING (player_id)
WHERE
team_id = 1

得到如下结果:

player_id | pts
---------------
1 | 10
2 | 5

这是 SQL Fiddle .

关于MySQL查询根据其他表的多列从1个表中获取多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15732161/

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