gpt4 book ai didi

mysql - 从 2 个连接表中选择最新数据

转载 作者:行者123 更新时间:2023-11-30 23:10:39 27 4
gpt4 key购买 nike

我已经很努力地查看了其他 SQL 查询问题,但无法缩小似乎对我的情况有效的响应范围......所以这里开始。

我有两个 mySQL 表:

players:
pid
pname

player_stats:
pid
statdate
rank
score

我想像这样显示玩家姓名及其最新得分和排名的输出:

player1 | rank10 | 123345
player2 | rank15 | 480993

我在 pname 上玩过 max(statdate) 和 GROUP BY,但我得到的最接近的是下面,它给了我正确的行数,但不是最新的日期(因此不是最新的排名或分数)。

SELECT p.pname, s.rank, s.score
FROM players p INNER JOIN player_stats s ON p.pid = s.pid
GROUP BY p.pname

如前所述,这很接近,但排名/分数并不总是最后日期的

最佳答案

您可以在子查询中加入一个额外的连接,它分别为每个 pid 获取最新的 date

子查询只包含两列:pidstatdate。要获取其他列,您需要将其与其他表连接起来。

SELECT  a.pname, b.rank, b.score
FROM players a
INNER JOIN player_stats b
ON a.pid = b.pid
INNER JOIN
(
SELECT pid, MAX(statdate) statdate
FROM player_stats
GROUP BY pid
) c ON b.pid = c.pid
AND b.statdate = c.statdate

关于mysql - 从 2 个连接表中选择最新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19882549/

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