有个bug管理系统,假如里面有两张表,一个名为bug,一个名为bug_history。
bug表中有两个字段,分别为:id,last_updated;id代表bug编号,一个bug一个编号,具有唯一性,last_updated字段代表该bug的最后更新日期
bug_history表中有三个字段,分别为id,bug_id,date_modified。这是个bug修订历史表,id代表修订顺编号,也具有唯一性;bug_id,就是bug编号,同bug表中的id,是具有对应关系的;date_modified是这次修订的提交日期。假设这两张表中记录如下:
bug表
id last_updated
1 20130401
2 20130401
3 20130101
4 20130206bug_history表
id bug_id date_modified
1 1 20120103
2 1 20120104
3 1 20120106
4 2 20120502
5 2 20120503
6 2 20120506现在要实现的结果就是,用bug_history表每个bug_id的最大id号对应的date_modified字段内容,去更新bug表中对应id的last_updated值。
举例来说,bug_history表bug_id=1的最大id=3,然后id=3对应的date_modified是20120106,然后就用20120106去更新bug表中id=1的last_updated字段请问update语句如何写?
update (select id,last_updated from mantis_bug_table) as a,
(select bug_id,max(date_modified) as maxdate from mantis_bug_history_table group by bug_id) as b
set a.last_updated = b.maxdate
where a.id = b.bug_id and a.last_updated <> b.maxdate
这个是我写的,执行失败。
bug表中有两个字段,分别为:id,last_updated;id代表bug编号,一个bug一个编号,具有唯一性,last_updated字段代表该bug的最后更新日期
bug_history表中有三个字段,分别为id,bug_id,date_modified。这是个bug修订历史表,id代表修订顺编号,也具有唯一性;bug_id,就是bug编号,同bug表中的id,是具有对应关系的;date_modified是这次修订的提交日期。假设这两张表中记录如下:
bug表
id last_updated
1 20130401
2 20130401
3 20130101
4 20130206bug_history表
id bug_id date_modified
1 1 20120103
2 1 20120104
3 1 20120106
4 2 20120502
5 2 20120503
6 2 20120506现在要实现的结果就是,用bug_history表每个bug_id的最大id号对应的date_modified字段内容,去更新bug表中对应id的last_updated值。
举例来说,bug_history表bug_id=1的最大id=3,然后id=3对应的date_modified是20120106,然后就用20120106去更新bug表中id=1的last_updated字段请问update语句如何写?
update (select id,last_updated from mantis_bug_table) as a,
(select bug_id,max(date_modified) as maxdate from mantis_bug_history_table group by bug_id) as b
set a.last_updated = b.maxdate
where a.id = b.bug_id and a.last_updated <> b.maxdate
这个是我写的,执行失败。
INNER JOIN bug C ON A.`bug_id`=C.`id`
SET C.`last_updated`=A.`date_modified`
WHERE NOT EXISTS(SELECT 1 FROM bug_history B WHERE A.`bug_id`=B.`bug_id` AND A.`id`<B.ID)
;
WHERE NOT EXISTS(SELECT 1 FROM bug_history B WHERE A.`bug_id`=B.`bug_id` AND A.`id`<B.ID)这是一个怎样的过程,能说下嘛?
考虑一下这个条件
不知道是不是这个意思?请版主明确。