偶现在急需写一条可实现这种功能的sql语句:从表ja_org中的字段org_name找出与表ja_person中的字段  值相同的,得到了这个对应的表ja_org中的字段org_id再把表ja_person中的字段org_name替换成表ja_org中的字段org_id
偶写了一下
update ja_person t,ja_org p set t.org_id=p.org_id where t.org_id=p.name提供参考偶对sql很不熟,希望高手能告诉我,万分感谢

解决方案 »

  1.   

    偶现在急需写一条可实现这种功能的sql语句:从表ja_org中的字段org_name找出与表ja_person中的字段org_id  值相同的,得到了这个对应的表ja_org中的字段org_id再把表ja_person中的字段org_name替换成表ja_org中的字段org_id
    偶写了一下
    update ja_person t,ja_org p set t.org_id=p.org_id where t.org_id=p.name提供参考偶对sql很不熟,希望高手能告诉我,万分感谢
      

  2.   

    update ja_person
     set ora_id=(select ora_id 
                 from ja_org 
                 where ja_person.org_id=ja_org.name 
                      and rownum=1
                )
      

  3.   

    update ja_org
     set org_name=(select org_id 
                 from ja_person 
                 where ja_person.org_name=ja_org.org_name 
                      and rownum=1
                )
      

  4.   

    "再把表ja_person中的字段org_name替换成表ja_org中的字段org_id"我上面的SQL是理解的是ORG_NAME:=ORG_ID用ID去代替NAME.
      

  5.   

    select ja_org.org_id from ja_org,ja_person where ja_person.org_id=ja_org.org_name这条语句没错,有结果出来可是我用update ja_person set org_id=(select ja_org.org_id from ja_org,ja_person where ja_person.org_id=ja_org.org_name)却报错,提示:单行子查询多于一个行返回,请问我该怎么改才能把ja_person中org_id替换掉,谢谢
      

  6.   

    update ja_person set ja_person.org_id=(select ja_org.org_id from ja_org where ja_person.org_id=ja_org.org_name) 这样就可以了,谢谢大家了
      

  7.   

    回复人: hevin(没有什么是不可能的) 
    回复人: sbaz(万神渡劫) 
    update ja_person
     set ora_id=(select ora_id 
                 from ja_org 
                 where ja_person.org_id=ja_org.name 
                      and rownum=1
                )
    你们的答案有问题,若没有符合ja_person.org_id=ja_org.name的条件,ja_person.ora_id将会清空,正解如下:
    update ja_person
      set org_id=(select org_id from ja_org where org_name=ja_person.org_id and rownum=1)
    where exists(select 'a' from ja_org where org_name=ja_person.org_id)