关于Rack()自增长的一则双表关联更新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Rack()自增长的一则双表关联更新相关的知识,希望对你有一定的参考价值。

A表(tb_abc):


AB
1aa
0200
2bb0300
3cc0500
4dd1800
5ee2200
6ff3300

B表(tb_abcc):


A
B
1aa
(0201)
2aa(0202)
3bb(0301)
4bb(0302)
5bb(0303)
6cc(0501)

括号里是预期值

规则: 通过B表的a字段匹配A表的a字段,并读取A表的b字段,按照该值依次增数写入B表b字段

实现:

update
  tb_abcc c
set
  c.b =
  (select
    tmp.str
  from
    (select
      b.rowid rd,
      b.a,
      substr(a.b, 1, 2) || lpad(
        (
          rank () over (partition by b.a
            order by b.rowid)
        ),
        2,
        0
      ) str
    from
      tb_abc a,
      tb_abcc b
    where a.a = b.a) tmp
  where c.rowid = tmp.rd)
where exists
  (select
    ‘x‘
  from
    (select
      b.rowid rd,
      b.a,
      substr(a.b, 1, 2) || lpad(
        (
          rank () over (partition by b.a
            order by b.rowid)
        ),
        2,
        0
      ) str
    from
      tb_abc a,
      tb_abcc b
    where a.a = b.a) tmp
  where c.rowid = tmp.rd);

6 rows updated

select * from tb_abcc;

A    B

---- ------

aa   0201

aa   0202

bb   0301

bb   0302

bb   0303

cc   0501


6 rows selected

本文出自 “沙罗双树园” 博客,请务必保留此出处http://mmx813.blog.51cto.com/12884864/1923304

以上是关于关于Rack()自增长的一则双表关联更新的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB增加及修改字段,表关联修改字段方法一则

利用数据库触发器让字段与自增长Id相关联

mysql 联表 更新

Oracle中的双表是啥?

easyui动态处理双表

Navicat for MySQL怎么将设置成外键的ID设置自动增长