请教个sql问题?

guoke1 2009-03-30 09:39:41
name date add Amount id
姓名 日期 地址 金额 编号 籍贯 生日

张三 2009 海淀 100 aid
张三 2008 海淀 300 ijr
李四 2003 朝阳 200 due
李四 2007 朝阳 200 die
王五 2003 昌平 400 urw
刘六 2007 朝阳 200 dud

把std表中相同姓名地址人的编号,更新成日期最早的编号;
...全文
57 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoke1 2009-03-30
  • 打赏
  • 举报
回复
谢谢!
wwwwb 2009-03-30
  • 打赏
  • 举报
回复
or

update tth3 a1 inner join
(select a.* from tth3 a
inner join
(select name,min(date) as mi from tth3 group by name) b
on a.name=b.name and a.date=b.mi) as c1
on a1.`name`=c1.`name`
set a1.id=c1.id
wwwwb 2009-03-30
  • 打赏
  • 举报
回复
update tth3 a1,
(select a.* from tth3 a
inner join
(select name,min(date) as mi from tth3 group by name) b
on a.name=b.name and a.date=b.mi) as c1
set a1.id=c1.id
where a1.`name`=c1.`name`
wwwwb 2009-03-30
  • 打赏
  • 举报
回复
update tth3 a1,
(select a.* from tth3 a
inner join
(select name,min(date) as mi from tth3 group by name) b
on a.name=b.name and a.date=b.mi) as c1
set a1.id=c1.id
where a1.`name`=c1.`name` and a1.`date`=c1.`date`
guoke1 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wwwwb 的回复:]
比如
张三 2009 海淀 100 aid
张三 2008 海淀 300 ijr
更新成
张三 2009 海淀 100 ijr
张三 2008 海淀 300 ijr
[/Quote]

是的
百年树人 2009-03-30
  • 打赏
  • 举报
回复
UPDATE 
std,
(SELECT
姓名,
地址,
编号
FROM
std a
WHERE
NOT EXISTS(SELECT * FROM std WHERE 姓名=a.姓名 AND 地址=a.地址 AND 日期>a.日期 )
) t
SET
std.编号=t.编号
WHERE
std.姓名=t.姓名 AND std.地址=t.地址
wwwwb 2009-03-30
  • 打赏
  • 举报
回复
比如
张三 2009 海淀 100 aid
张三 2008 海淀 300 ijr
更新成
张三 2009 海淀 100 ijr
张三 2008 海淀 300 ijr
guoke1 2009-03-30
  • 打赏
  • 举报
回复
一张表,
编号字段名id

编号字段值
aid
ijr
due
die
urw
dud
wwwwb 2009-03-30
  • 打赏
  • 举报
回复
上述是两张表?
编号字段在什么地方?
贴正确结果贴出来看看

57,062

社区成员

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

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