gpt4 book ai didi

mysql - 选择具有唯一用户 ID 的最新记录

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

我有一个数据库表,其中包含一段时间内每个用户的多个条目。我尝试构建的查询只会返回该时间段内每个用户的最新记录。

到目前为止我所拥有的:

SELECT *
FROM (SELECT DISTINCT * FROM picks_recorded)
WHERE date_submitted > '" . $week_start . "'
AND date_submitted < '" . $week_end . "'
ORDER BY date_submitted DESC
LIMIT 1;

我试过几个版本都没有成功。

最佳答案

试试这个:

select distinct p.* from 
picks_recorded p
inner join
(select userid, max(date_submitted) as maxdate from picks_recorded
WHERE date_submitted > '" . $week_start . "'
AND date_submitted < '" . $week_end . "'
group by userid) s on p.userid = s.userid and p.date_submitted = s.maxdate

基本上,我们使用 group by 来获取每个 useriddate_submitted 的最大值,即每个用户的最新记录日期。然后我们根据 useridsubmitted_date 与源表进行内部连接,以获取所有需要的数据。

注意:在外部查询中使用 distinct 将确保如果给定用户在最新日期有多个相同的记录,则只返回一行。但是,如果您有 2 条记录具有相同的 useridsubmitted_date,但即使有一个不同的字段,那么这两条记录都将被返回。在这种情况下,您需要提供额外的逻辑来说明应在最终结果中保留 2 条记录中的哪一条。

附带说明一下,您应该避免通过连接变量来构建查询。相反,您应该使用准备好的语句/参数化查询。

关于mysql - 选择具有唯一用户 ID 的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25395958/

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