查出上传时间最晚的 记录 并按用户分组

phoenix_pj 2009-09-01 02:38:52
这是我的photo表的结构
CREATE TABLE `photo` (
`id` bigint(20) NOT NULL,
`uptime` datetime default NULL,
`user_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `FK65B3E3248CE7A33` (`user_id`),

CONSTRAINT `FK65B3E3248CE7A33` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),

)

我想从photo表中找到 以userid分组的,且上传时间最晚的记录
也就是查出来每个user 最新上传的photo
...全文
155 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
phoenix_pj 2009-09-01
  • 打赏
  • 举报
回复
好了,谢谢各位了
vinsonshen 2009-09-01
  • 打赏
  • 举报
回复
看你的表结构,应该你的photo表类似一个日志表,所以,上传时间最晚的记录也就是ID值最大的记录:

写法1:
select a.*,b.* from photo a,`user` b where a.user_id=b.id and not exists (
select 1 from photo c where c.user_id=a.user_id and c.id>a.id);

写法2:
select a.*,b.* from photo a,`user` b where a.user_id=b.id and a.id=(select max(c.id) from photo c where c.user_id=a.user_id);

写法3:
select a.*,b.* from photo a,`user` b,(select user_id,max(id) as newid from photo group by user_id) c where a.user_id=b.id and a.id=c.newid;
wwwwb 2009-09-01
  • 打赏
  • 举报
回复
贴记录及要求结果出来看看
select a.id,a.uptime,a.user_id from photo a
left join photo b on a.userid=b.userid and a.uptime<=b.uptime
group by a.id,a.uptime,a.user_id having count(b.id)=1
ACMAIN_CHM 2009-09-01
  • 打赏
  • 举报
回复


建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
phoenix_pj 2009-09-01
  • 打赏
  • 举报
回复
谢谢善良的你,我试了下会有重复,而且,DISTINCT去不掉
nianzhang747 2009-09-01
  • 打赏
  • 举报
回复
贴出数据来看看 是不是你的数据有问题

max(datetime)能查出最大记录


ACMAIN_CHM 2009-09-01
  • 打赏
  • 举报
回复
类似问题这个版块中经常出现。
phoenix_pj 2009-09-01
  • 打赏
  • 举报
回复
高手!为什么这么快?你经常查这种的 吗?
ACMAIN_CHM 2009-09-01
  • 打赏
  • 举报
回复
如果数据不多的话,也可以直接
select * 
from photo a
where not exists (select 1 from photo where user_id=a.user_id and uptime>a.uptime)
ACMAIN_CHM 2009-09-01
  • 打赏
  • 举报
回复
或者你也可以用inner join 这种格式,结果应该是一样
select photo.*
from photo inner join (select user_id,max(uptime) as max_uptime from photo group by user_id) p
on photo.user_id=p.user_id and photo.uptime=p.max_uptime
ACMAIN_CHM 2009-09-01
  • 打赏
  • 举报
回复
不会啊,一楼的应该是uptime 最大的那条啊。
phoenix_pj 2009-09-01
  • 打赏
  • 举报
回复
我查出来的结果虽然按user分组了,但是 不是最新的那条记录
ACMAIN_CHM 2009-09-01
  • 打赏
  • 举报
回复
select photo.*
from photo,(select user_id,max(uptime) as max_uptime from photo group by user_id) p
where photo.user_id=p.user_id
and photo.uptime=p.max_uptime
代码下载链接: https://pan.quark.cn/s/a22871fb98ec 在当前高度竞争的商业环境中,个体经营者与小型仓储管理者正承受着市场压力和不断攀升的运营开支。为了有效应对这些挑战,他们迫切需要一套能够提升工作效率和经营成效的管理工具。基于此需求,一款免费的正版单机版进销存管理软件应时而生,为个体经营者和小型仓储单位提供了一站式的解决方案。 进销存管理软件是企业进行商品流通管理的关键系统,其功能涵盖了商品采购、销售及库存管理这三大核心业务流程。正版免费进销存软件的推出,不仅减轻了企业的财务负担,同时也增强了管理的便捷性和数据记录的精确度。 进货管理构成了整个进销存框架的基础。免费进销存软件配备了详尽的进货管理模块,能够完整记录每次采购的详细信息,包括供应商资料、采购量、单价和总费用等,这对于分析采购成本和控制预算具有重要作用。用户可以利用软件迅速创建采购订单,并对货物的到货状态进行监控。此外,软件还提供采购数据分析工具,协助管理者洞察市场趋势,从而制定更为科学合理的采购计划。 销售管理是进销存软件的重点功能。通过运用此类软件,用户可以精确记录每一笔销售活动,涵盖客户资料、商品规格、销售价格和折扣信息。软件能够自动生成销售凭证,简化交易过程,显著提升工作效率。再者,销售统计分析功能使管理者能够全面了解销售状况,准确识别畅销及滞销产品,进而优化销售策略,增加销售量和盈利。 库存管理对于保障业务连续性和控制成本至关重要。正版免费进销存管理软件能够实时更新库存信息,并对库存水平低于安全线的商品发出警示,有效预防缺货问题。同时,用户可以随时查询库存详情,并执行定期的库存盘点,减少不必要的库存积压,加速资金周转。软件内置的库存调拨和报废处理功能,使库存管...
内容概要:本文系统性地介绍了基于灰狼优化算法(GWO)优化BP神经网络的风电功率预测方法,并提供了完整的Matlab代码实现。该方法通过GWO算法全局寻优能力强的特点,优化BP神经网络的初始权重与阈值,有效缓解了传统BP网络易陷入局部最优、收敛速度慢等问题,从而显著提升风电功率预测的精度与模型稳定性。文中详尽阐述了数据预处理、适应度函数设计、GWO-BP模型构建流程及预测结果评估等关键技术环节,同时列举了多个智能优化算法与机器学习相结合的科研方向,涵盖电力系统优化、新能源预测、路径规划、信号处理等多个前沿领域,展现了广阔的应用前景与研究价值。; 适合人群:具备Matlab编程基础与机器学习基础知识,从事新能源发电预测、智能优化算法研究或电力系统分析的高校研究生、科研人员及工程技术开发者。; 使用场景及目标:①应用于风电场功率预测系统,支持电网调度决策与能源管理优化;②为GWO优化神经网络的建模范式提供可复现的技术参考,适用于其他时序预测任务的研究与拓展;③帮助科研人员深入理解智能算法与神经网络融合的设计思路与实现路径。; 阅读建议:建议读者结合提供的Matlab代码与网盘资料,按照文档结构循序渐进学习,重点关注GWO-BP的优化机制与参数调优策略,动手调试并尝试迁移至光伏预测、负荷预测等相似场景,同时借鉴文中提出的创新方向以启发后续科研工作。

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧