gpt4 book ai didi

sql - 在多对多中选择与精确键的关系

转载 作者:行者123 更新时间:2023-11-29 14:21:40 25 4
gpt4 key购买 nike

我在 SQL 数据库中的两个表上有一个 M2M 关系,如下所示:

Players
-------
Name
ID

Teams
------
Name
ID

PlayersTeams
------
PlayerID
TeamID

一支球队由一名或多名球员组成。

我想查询给定球员 ID 的球队,并只返回包含那些球员的球队,不多也不少。因此,查询拥有球员 (1,2,3) 的球队只会返回拥有球员 1,2,3 的球队,而不会返回拥有球员 1,2,3,4 的球队。

这在单个查询中可能吗?

我有一个 sqlfiddle,我想在这里解决它:http://sqlfiddle.com/#!2/27799/8

在该示例中,我希望能够通过查询玩家 ID 1 和 2 来选择团队“john and mick”...

更新在这个 sqlfiddle http://sqlfiddle.com/#!2/27799/69我可以选择团队 ID 2(“john 和 mick”),但它也会获得团队 ID 4(“john、mick 和 trev”)。需要将其过滤到仅 2 个。

最佳答案

select  TeamId
from PlayersTeams
group by TeamId
having count(*) = sum(case when playerid in (1,2) then 1 else 0 end)
and count(*) = 2

不熟悉 mysql,所以我不知道如何获取玩家列表长度(count(*) =2)以使其完全动态,但您明白了。

关于sql - 在多对多中选择与精确键的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23236204/

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