gpt4 book ai didi

mysql - SQL查询返回列值多次出现的行

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

我正在创建一个简单的数据库,它可以让我跟踪斯诺克比赛的结果,从而在球员之间产生正面交锋的结果。目前我有 3 个表:(Player, Fixture, Result)

PlayerID    PlayerName
1 Michael Abraham
2 Ben Mullen
3 Mark Crozier

FixtureID Date TableNo Group
1 07/12/2015 19:00:00 12 0
2 08/12/2015 12:00:00 9 0

ResultID FixtureID PlayerID FramesWon
1 1 1 3
2 1 3 1
3 2 1 5
4 2 2 1

我想要一个查询,该查询返回结果表中发生在玩家 1 和 3 之间的所有行。目前我的查询是:

SELECT *
FROM Result
WHERE PlayerID IN (1,3);

这将返回结果表的前 3 行 - 当我只查找前 2 行时,因为它们共享相同的 FixtureID。有没有一种简单的方法可以从此查询结果中删除第三行,或者我应该重新考虑我的数据库设计?任何帮助将不胜感激。

最佳答案

一种解决方案是使用 GROUP BY 查询,按 FixtureID 分组并计算每个 FixtureID 的行数。此查询将选择同时具有玩家 1 和 3 的所有 FixtureID:

select
FixtureID
from
Results
where
PlayerID IN (1,3)
group by
FixtureID
having
count(*)=2

然后要从结果表中获取记录,您可以使用此查询:

select *
from Results
where FixtureID IN (
select FixtureID
from Results
where PlayerID IN (1,3)
group by FixtureID
having count(*)=2
)

关于mysql - SQL查询返回列值多次出现的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34254637/

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