使用另一个表中的相同值更新多个记录

时间:2017-09-28 21:25:29

标签: oracle

我尝试使用ID字段T1更新表T2中的字段ID_T1,但是唯一加入它们的是两个表中的DESC字段,这是一个问题,因为所有更新I&# 39; ve尝试返回"单行子查询返回多行"因为在T1中有多个具有相同DESC的记录

T1

|DESC | ID |
|A    |  1 |
|B    |  2 |
|C    |  3 |

T2

|DESC | ID | ID_T1 |
|A    |  1 |       |
|B    |  2 |       |
|C    |  3 |       |
|A    |  4 |       |
|B    |  5 |       |
|C    |  6 |       |

预期结果应为:

T2

|DESC | ID | ID_T1  |
|A    |  1 |    1   |
|B    |  2 |    2   |
|C    |  3 |    3   |
|A    |  4 |    1   |
|B    |  5 |    2   |
|C    |  6 |    3   |

1 个答案:

答案 0 :(得分:0)

你得到了错误的方法;)

UPDATE T2 d
    SET (d.id_t1) = (SELECT c.id FROM T1 c WHERE d.desc= c.desc);