首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果有多个连接匹配,我如何连接到一行?

如果有多个连接匹配,我如何连接到一行?
EN

Stack Overflow用户
提问于 2014-09-25 06:19:00
回答 1查看 27关注 0票数 0

我有两张桌子。我想加入的方式是为那个玩家加入最新的日期。在下面的子集中,我希望Adams的连接只连接到抽签的行,因为它是最新的日期。当你有多行的时候,我该怎么做呢?

代码语言:javascript
复制
ID    PLAYER
-------------
2     Adams
3     Rogers
4     David


PLAYER_ID    DATE          RESULT
------------------------------------
2            01/01/2014    Win
2            01/02/2014    Win
2            01/03/2014    Loss
2            01/04/2014    Draw
EN

回答 1

Stack Overflow用户

发布于 2014-09-25 06:43:30

我假设player_id和date是一个独特的组合。Date不是一个好的列名。我假设您的表名是player和result...in,请给我们表名,这样答案就可以包含它们,而不是我的猜测。

构建查询:

代码语言:javascript
复制
(select player_ID, max(date) from table group by player_ID)

这将为每个玩家选择最大日期。我们将使用它作为子查询,并对其进行内部连接,以便它充当筛选器。请注意,如果player_ID,date组合不是唯一的,这将为每个玩家返回多行。

代码语言:javascript
复制
Select player, maxdate
from player p
inner join (select player_ID, max(date) as maxdate from result group by player_ID) a
on a.player_ID = p.player_ID

这将返回给你一个球员和最近的日期。将其连接回结果表以获得结果

代码语言:javascript
复制
Select player, result
from player p
inner join (select player_ID, max(date) as maxdate from result group by player_ID) a
on a.player_ID = p.player_ID
inner join result r on r.player_ID = a.player_ID and r.date = a.maxdate

希望这对于为您创建语句的逻辑是有意义的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26027488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档