gpt4 book ai didi

mysql - 优化 SQL 查找体育(篮球)阵容

转载 作者:行者123 更新时间:2023-11-29 22:21:53 28 4
gpt4 key购买 nike

我正在尝试设置一个 SQL 数据库来记录游戏中发生的 3 人阵容。我现在的结构是:

玩家

玩家ID玩家姓名

阵容

阵容ID

阵容_球员

阵容ID(外键)玩家ID(外键)

我想找到一种快速方法来检查特定的 3 名球员是否已经属于阵容。假设我想找到一个由 A,B,C 玩家组成的阵容,我能想到的解决方案是这样的:

SELECT t1.lineupID
FROM (SELECT lineupID FROM Lineup_players WHERE playerID=A) t1
INNER JOIN (SELECT lineupID FROM Lineup_players WHERE playerID=B) t2 ON t1.lineupID = t2.lineupID
INNER JOIN (SELECT lineupID FROM Lineup_players WHERE playerID=C) t3 ON t1.lineupID = t3.lineupID

我觉得这是一个笨拙的解决方案。是否有使用相同表的更快查询,或者是否有更好的方法来存储数据?

另外,如果我的阵容中有球员 A、B、C、D、E,是否有一种快速方法可以快速找到包含其中任意 3 名球员的所有阵容,而无需检查所有 20 个组合?

最佳答案

也许你看起来像这样?

select
lineupid,
count(*)
from
Lineup_players
where
playerid in (A,B,C,D,E)
group by
lineupid
having
count(*) >= 3

这将列出具有 3 个或更多列出的 ID 的阵容。

关于mysql - 优化 SQL 查找体育(篮球)阵容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30629667/

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