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

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
...全文
72 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
某公司采用代理服务器接入 Internet,网络拓扑结构如图1-1所示。 请填写host1的Internet协议属性参数。 IP地址: (1) ; 子网掩码: (2) ; 默认网关: (3) ; 其中,host1 默认网关为图中接口 (4) 处的 IP地址。 答案: (1)118.165.3.178 (2)255.255.255.192    (3)118.165.3.190 (4)2(或接口2) 若host1要访问Internet,根据默认路由,数据报文经IP地址为 (5) 的接口发送到IP 地址为 (6) 的网关。 答案:(5)118.165.3.178 (6)118.165.3.190 与命令route print作用等价的命令为 (7) 。 A. netstat -r B. ping C. tracert D. arp –a 答案:A 或 netstar -r 接口3的IP地址为 (8) 。 答案:204.116.172.34 某公司要在 Windows 2003 Server 上搭建内部FTP服务器,服务器分配有一个静态 的公网IP地址228.121.12.38。 在Windows 2003中安装FTP服务,需在“应用程序服务器”选项的 (1) 组件 复选框中选择“文件传输协议(FTP)服务”进行安装。 (1)备选答案: A. ASP.NET B. Internet信息服务(IIS) C. 应用程序服务器控制台 D. 启用网络服务 答案:B 或 Internet信息服务 (IIS) 在图2-1中,在“输入此FTP站点使用的 IP地址”文本框中应填入 (2) ,默 认情况下“输入此FTP站点的TCP端口”文本框中应填入 (3) 。 答案:(2)228.121.12.38 (3)21 在图2-2中,如果FTP资源存储在F盘,新建FTP站点的默认主目录为 (4) 。 (4)备选答案: A. F:\inetpub\ftproot B. F:\ftp C. F:\ftp\root D. F:\inetpub\wwwroot 答案:A 或 F:\inetpub\ftproot FTP服务器配置完成后,可以在网络上另一台 PC中测试 FTP是否配置成功。测试 过程为:在该计算机上命令行模式下输入命令 (5) ,在出现 USER提示时输入 FTP 服务器上计算机管理员名称和密码就可以登陆了。如果该 FTP上开启了匿名访问功能, 在用户名处输入 (6) ,密码处填写一个 Email地址也可以登录。 (6)备选答案: A. anonymous B. user C. administrator :(5)ftp 228.121.12.38 (6)A 或 anonymous 依据图2-2的配置,该FTP服务器配置完成后,用户可以上传文件吗?为什么? 答案:不可以。(1分)因为FTP服务器没有赋予“写入”权限。(2分) 该网络中,区域 1 是防火墙的 (1) 。为使该企业网能够接入 Internet,路由器的 接口1可以使用的IP地址是 (2) 。 备选答案: (1)A. DMZ B. Trust区域 C. Untrust区域 (2)A. 10.1.1.1 B. 61.11.52.101 C. 172.30.1.1 D. 192.168.1.1 答案:(1)A 或 DMZ (2)B 或 61.11.52.101 若需要架设一台Web服务器对外提供服务,域名为www.test.com,外网 IP地址为 61.11.52.98,内网IP地址为192.168.1.4,则Web 服务器应该放置在 (3) 。若内网用 户可以通过域名正常访问该Web服务器,而外网用户无法访问该服务器。经检查,Web 服务器的DNS记录配置正确,则可能的原因是 (4) 。 备选答案: (3)A. 区域1 B. 区域2 (4)A. 路由器上NAT表项配置错误 B. DHCP服务器配置错误 C. Web服务器未启动 答案:(3)A 或区域1 (4)A 或 路由器上NAT 表项配置错误 若区域 2 中的计算机接入 Internet 时,网络连接时断时续,网络管理员利用 Sniffer抓包工具分析区域 2 中的分组,发现大量 arp 应答数据包占用了网络带宽,则可能的故障原因是 (5) 。为了排除故障,网络管理员应采取的措施为 (6) 。 (5)备选答案: A. 网络线路出现故障 B. 网络中出现了arp病毒 C. DNS服务器配置错误 D. 防火墙配置错误 答案:(5)B 或网络中出现了arp病毒(2分)   (6)查出受病毒感染的机器,将其从网络中断开(1分) (或区域2中所有的计算机都安装arp防火墙) (7)备选答案: A. Web服务器未启动 B. DNS服务器未启动 C. 客户端机器网络线路故障 D. 客户端机器网卡故障 答案:C 若某客户机使用 IE 可以正常访问网站,而 QQ 软件不能联网,可能的原因是 (8)备选答案: A. DNS服务器配置错误 B. QQ软件代理配置错误 C. 客户端机器网络线路故障 D. 客户端机器网卡故障 答案:B 某公司通过服务器S1中的“路由和远程访问”服务接入Internet,拓扑结构如图4-1 所示。其中,服务器S1 的操作系统为Windows Server 2003,公司从 ISP处租用的公网 IP地址段是202.134.135.88/29。 对服务器S1进行配置时,打开“NAT/基本防火墙”配置窗口,在图 4-2(a) 、(b)、 (c)中,配置lan接口的是 (1) ,配置wan接口的是 (2) 。答案:(1)(a) 或图4-2(a) (2)(b)或 图4-2(b) 为保证内网 PC 可以访问 Internet,图 4-3 所示 wan 接口的地址池中,起始地址为 (3) ,结束地址为 (4) 。 如果内网中 Web 服务器对外提供服务的 IP 地址是 202.134.135.92,则需要在图 4-4 中“保留此公用IP地址”文本框中填入 (5) , “为专用网络上的计算机”文本框中填 入 (6) 。 答案: (3)202.134.135.89 (4)202.134.135.93   (5)202.134.135.92 (6)192.168.1.100 为保证 Web 服务器能正常对外提供服务,还需要在图 4-5 所示的“服务和端口”选 项卡中勾选 (7) 选项。如果要让来自 Internet 的 ping 消息通过 S1,在图 4-6 中至少 要勾选 (8) 选项。 答案: (7)web服务器(HTTP) (8)传入的回应请求 以下是用 ASP 实现的一个网上报名系统。用 IE 打开网页文件“index.asp”后的效果 【index.asp文档的内容】 <% set conn=server.CreateObject("adodb.connection") conn.open"driver={Microsoft Access driver (*.mdb)};dbq="&server.mappath("date/date.mdb") exec="select * from webset" 为程序中空缺处(1)选择正确答案。 备选答案: A. Open B. Run C. Execute D. Dim 答案:A 备选答案: A. Text B. Submit C. Password D. Radio E. Checkbox F. Option G. Select H. Reset 2)A (3)C (4)D (5)G (6)B 该网页连接的数据库类型是 (7) 。 备选答案: A. Oracle B. SQLServer C. Access D. DB2 答案:C HTML文档中的标记的cellpadding属性用于定义 (8) 。 备选答案: A. 内容对齐方式 B. 背景颜色 C. 边线粗细 D. 单元格边距 答案:D

56,677

社区成员

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

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