现有两张表A和B,如何使用一条SQL语句更新A.p1,A.p2,A.p3和B.m1,条件是A.p5=1.
PS:一直不明白Oracle的多表update,希望通过这条语句明白一点~~

解决方案 »

  1.   

    --方法一:UPDATE am_approve_list_log_sammy a
       SET (a.emp_id, a.approver_sequence, a.approver_id) =
              (SELECT b.emp_id, b.approver_sequence, b.approver_id
                 FROM am_approve_list_sammy b
                WHERE b.emp_id = a.emp_id AND b.approver_id = a.approver_id)
     WHERE EXISTS (SELECT 1
                     FROM am_approve_list_sammy c
                    WHERE c.emp_id = a.emp_id AND c.approver_id = a.approver_id) 
    --方法二:(10g(含)以上版本才可以使用)MERGE INTO gt$fm_form_field_import imp
             USING fm_form_field fie
             ON (    imp.field_name = fie.field_name
                 AND fie.form_kind = 'BQE.FORM.7'
                 AND fie.table_name = 'BQEFORM7')
             WHEN MATCHED THEN
                UPDATE
                   SET imp.description = fie.description,
                       imp.is_query = fie.is_query,
                       imp.is_default_value = fie.is_default_value,
                       imp.is_query_show = fie.is_query_show,
                       imp.is_form_show = fie.is_form_show,
                       imp.is_participant = fie.is_participant,
                       imp.is_mail_show = fie.is_mail_show
      

  2.   

    好像只能更新一个table中的数据,可能是我的理解有问题~~
      

  3.   

    一条sql更新两张表,oracle中没有这种语法
      

  4.   

    顶一下
      oracle QQ群:54775466
      欢迎爱好者一起探讨。
      

  5.   

    http://topic.csdn.net/t/20021112/15/1170013.html
    有个类似的回答可以去看看,很不错哦~