为什么会报 单行子查询返回多个行 的错误?请教,多谢!

解决方案 »

  1.   

    select t2.B from t1,t2 where t1.A = t2.A
    看看结果,肯定不是一条
    改成这样试试,看是否符合要求
     update t1 set B = (select max(t2.B) from t2 where t1.A = t2.A); 
      

  2.   

    内循环返回多条了,条件再限制一下就好了,最好再加个exists
      

  3.   

    select t2.B from t1,t2 where t1.A = t2.A这个语句返回了多个值.update t1 set B =XXXX把t1里B列每一行都更新成XXXX.
    把多个值赋给一个值,报错.
      

  4.   

    update t1 set B = (select t2.B from t2 where t1.A = t2.A);  
    把括号里的t1去掉就ok了,如果a是主key的话