mysql 3.23 字查询不支持问题

Zoogreen 2009-07-27 05:46:04
table a 记录
name sj rq
赵 13546875987 2009-07-07
赵 13546875987 2009-07-08
赵 13546875987 2009-07-09
李 13546875988 2009-07-10
李 13546875988 2009-07-11
李 13546875988 2009-07-12
.
.
.

要求查询得到 (每个name的,按日期排最后一条记录)
赵 13546875987 2009-07-09
李 13546875988 2009-07-12

...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zoogreen 2009-08-28
  • 打赏
  • 举报
回复
不好意思,各位,3.23不支这些语法,我升级成5.0了,可以写了,现在还有一个问题,同一日期,同一name可能有多条记录,

id name sj rq lx
1 赵 13546875987 2009-07-07 a
2 赵 13546875987 2009-07-08 a
4 赵 13546875987 2009-07-09 a
3 赵 13546875987 2009-07-09 b
5 李 13546875988 2009-07-10 a
6 李 13546875988 2009-07-11 a
7 李 13546875988 2009-07-12 a
8 李 13546875988 2009-07-12 b

要求查询得到 (每个name的,按日期排最后一条记录,同一日期取id最后一条)
3 赵 13546875987 2009-07-09 b
8 李 13546875988 2009-07-12 b
(id是自增,不一定是日期大的,id就大,人为录时,有可能先入后面的时间,在入之前的时间,所以要先按日期排,同一日期在由id排)
查询语句怎么写 套两个 exists?
ACMAIN_CHM 2009-07-27
  • 打赏
  • 举报
回复
手上没有 3.23 的版本。 不过 exists 应该可以试一下。
Zoogreen 2009-07-27
  • 打赏
  • 举报
回复
sql server是可以这样写,可是mysql不支持 exists , where rq= (select )这样的字查询的。
vinsonshen 2009-07-27
  • 打赏
  • 举报
回复
或:
select * from tb_name a,(select name,max(rq) as rq from tb_name group by name) b where b.name=a.name and b.rq=a.rq
vinsonshen 2009-07-27
  • 打赏
  • 举报
回复

select * from tb_name a where a.rq=(select max(rq) from tb_name b where b.name=a.name)
vinsonshen 2009-07-27
  • 打赏
  • 举报
回复
select * from tb_name a where not exists (select 1 from tb_name b where b.name=a.name and b.rq>a.rq)

56,677

社区成员

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

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