求助一下各位高手们,小弟有如下两张表
表A:guid name gender birthday mobile comments
1 aaaaaa m 1980-10-10 13000000000 成都
1 aaaaaa m 1980-10-10 13000000000 昆明
2 bbbbbb f 1980-10-11 13111111111 西安
2 bbbbbb f 1980-10-11 13111111111 桂林
3 cccccc m 1980-10-12 13222222222 重庆
3 cccccc m 1980-10-12 13222222222 重庆
4 dddddd f 1980-10-13 13333333333 浙江
4 dddddd f 1980-10-13 13333333333 苏州
5 eeeeee m 1980-10-14 13444444444 上海
5 eeeeee m 1980-10-14 13444444444 深圳
6 ffffff f 1980-10-15 13555555555 长沙
6 ffffff f 1980-10-15 13555555555 保定
7 gggggg m 1980-10-16 13666666666 山西
7 gggggg m 1980-10-16 13666666666 安徽
8 hhhhhh f 1980-10-17 13777777777 石家庄
8 hhhhhh f 1980-10-17 13777777777 银川
9 iiiiii m 1980-10-18 13888888888 太原
9 iiiiii m 1980-10-18 13888888888 辽宁
10 jjjjjj f 1980-10-19 13999999999 贵州
10 jjjjjj f 1980-10-19 13999999999 成都表B:guid name gender birthday mobile comments
1 13000000000
2 13111111111
3 13222222222
4 13333333333
5 13444444444
6 13555555555
7 13666666666
8 13777777777
9 13888888888
10 13999999999 弱弱的问一下各位朋友,如何按照mobile将表A的数据更新到表B中啊,其中前面的字段选择首条记录,comments字段要求合并。
存储过程也可以,谢谢各位,不胜感激!

解决方案 »

  1.   

    UPDATE table_b b
       SET (b.guid, b.name, b.gender, b.birthday, b.mobile, b.comments) = 
           (SELECT a.guid, a.name, a.gender, a.birthday, a.mobile, a.comments || b.comments
              FROM table_a a
             WHERE a.mobile = b.mobile
               AND a.mobile = 1);
         
      

  2.   

    code=SQL]
    insert into b
    (select a.guid, a.name, a.gender, a.birthday, a.mobile, replace(wm_concat(a.comments),',','|')
    from a,b 
    where a.mobile = b.mobile
    group by a.mobile);delete from b where name is null;commit;[
    [/code]
    一种方案