根据表达式中的多个条件更新单个列

时间:2016-01-21 19:24:38

标签: sql mariadb

我正在尝试更新单个列中的所有值。该列当前仅包含NULL值。

表格中有两列需要更新,表格中应该从需要匹配的新数据中进行更新。

在查找问题后,似乎之前没有提到它需要解决的方式。

到目前为止我提出的代码是(并且不起作用):

UPDATE ANSWER_PATTERN AS outer
SET outer.ANSWER_DURATION = 
(
    SELECT inner.ANSWER_DURATION
    FROM PREP_ANSWER_DURATION AS inner
    WHERE (inner.TEST_ITEM_EXT_ID,
           inner.STUDENT_EXT_ID) = 
          (outer.TEST_ITEM_EXT_ID,
           outer.STUDENT_EXT_ID)
);

那么,如果TEST_ITEM_EXT_ID和STUDENT_EXT_ID列都匹配,如何将ANSWER_DURATION列中table2的值输入table1,ANSWER_DURATION列?

我很乐意提供任何帮助。 : - )

2 个答案:

答案 0 :(得分:0)

您将如何做到这一点:

{{1}}

答案 1 :(得分:0)

我认为这可以实现您的目标。我对数据库风格的体验是不存在的,但这就是我使用PostgreSQL解决问题的方法。

UPDATE ANSWER_PATTERN t1
SET ANSWER_DURATION = t2.ANSWER_DURATION
FROM PREP_ANSWER_DURATION t2
WHERE t2.TEST_ITEM_EXT_ID = t1.TEST_ITEM_EXT_ID 
  AND t2.STUDENT_EXT_ID = t1.STUDENT_EXT_ID;