有两个数据库,样式如下:
数据库A:code    value    statu
          1        2        0
          1        3        0
          2        1        0
          2        3        0
          2        4        0
          3        5        0  
数据库B:code statu
          1     1
          1     2
          2     1
          3     3
现在想将数据库A中的statu的值改为数据库B中的statu值
要求A中的code值=B中的code值,如A中的code值多余B中的code值,则按顺序匹配。
上述描述希望得到下述结果,该怎么办?
数据库A:code    value    statu
          1        2        1
          1        3        2
          2        1        1
          2        3        0
          2        4        0
          3        5        3
另外数据库A中有200多万条记录,B中只有几百条记录,怎样写执行最快?
  

解决方案 »

  1.   

    按照mysql的源代码执行结构来说,任何一个表,如果能给与一个自动递增的int作为主键会大大加速SQL的执行,因为mysql可以把这个键作为RowNum来用。
      

  2.   


    primary key(id);
    一般为数字,可以不是数字
      

  3.   

    select t1.code,t1.value,(case when t1.statu<>1 then t2.statu else 0 end) as statu from t1 left join t2 on t1.code=t2.code;