王建新
2017-10-13 07:31
采纳率: 13.6%
浏览 2.6k

SQL查询,查询表A和表B的相同id的value值,修改表A中的value中,具体如下图

表A如下
表A图片说明

表B如下
表B图片说明

在表B中查询和表A中**id相同的value值** 如图查询后的表A内容
执行后的表A图片说明

sql应该怎么写?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • FEN_TA 2017-10-13 07:57

    表 B 中没有跟 表 A 对应 ID 的数据,你确定你给的结果集对么?

    update a,b set a.value = concat(a.value, b.value) where a.id = b.id

    打赏 评论
  • 子幽 2017-10-13 08:06
     $query="select a.id, a.value,b.value* from A as a left join B as b on a.id=b.id where 1";
    
     $result = mysql_query($query);
     //框架用惯了原生态忘记怎么写了,口述吧
    
    
     查出来满足条件的全部数据再循环修改A表
    
    
    
    
    
    
    打赏 评论
  • qq_34783977 2017-10-13 09:03

    select a.id,concat(a.value, b.value) from a,b where a.id = b.id

    打赏 评论
  • xingnima07 2017-10-14 02:59

    什么数据库?Oracle和MySQL对于多表关联update的方式还是不一样的,而且最后一个截图中的第一行为什么value是DFabc,不应该是DF吗?
    你的问题难道不是“a、b两表全连接然后相同ID的value连接起来update a表”吗?

    打赏 评论
  • ireton1980 2017-10-16 00:37

    将表a和表b id一样的的value改成和表b一样
    update a set a.value=b.value from a,b where a.id=b.id

    打赏 评论
  • xiao_calun 2017-10-18 09:04

    不知道你的数据库支不支持merge into 这个用法
    merge into a
    using b
    on ( a.id=b.id)
    when matched then
    update set a.value = concat(a.value, b.value)
    when not matched then
    insert values(b.id,b.value)

    打赏 评论

相关推荐 更多相似问题