更新声明

时间:2014-04-21 14:22:15

标签: sql sql-update odbc

我正在尝试更新来自另一个主要密钥为trans_nbr的表。

我的发言如下。我得到的所有错误都是"语法错误已经发生"。主键是两个表之间唯一的链接,它们也包含相同的行数。

之前我能够做到这一点,但之后我发现brev_efile_user_doc_stats表上的sequenceID有所不同,具体取决于审核流程中XML的处理方式,这就是corrected_seq_id列的原因在同一张桌子里。

UPDATE 
    brev_efile_user_doc_stats.reviewed_event_code
    , brev_efile_user_doc_stats.corrected_seq_id 
SET 
    brev_efile_user_doc_stats.reviewed_event_code
    , brev_efile_user_doc_stats.corrected_seq_id = 
        (SELECT 
            brev_efile_review.reviewed_event_code
            , brev_efile_review.sequence_id 
        FROM 
            brev_efile_review 
        WHERE 
            brev_efile_review.trans_nbr = brev_efile_user_doc_stats.trans_nbr)

1 个答案:

答案 0 :(得分:1)

这就是你要找的东西:

在SQL SERVER中

UPDATE
    brev_efile_user_doc_stats
SET
    brev_efile_user_doc_stats.reviewed_event_code = R.reviewed_event_code
    , brev_efile_user_doc_stats.corrected_seq_id = R.sequence_id
FROM
    brev_efile_user_doc_stats S
    INNER JOIN brev_efile_review R
        ON R.trans_nbr = S.trans_nbr

在Mysql中

UPDATE brev_efile_user_doc_stats AS S
    INNER JOIN brev_efile_review AS R ON R.trans_nbr = S.trans_nbr
SET S.reviewed_event_code = R.reviewed_event_code
    , S.corrected_seq_id = R.sequence_id