oracle联表update
时间: 2023-08-19 09:13:07 浏览: 114
在Oracle中,可以使用两种方式进行联表更新操作。
方式1:使用子查询进行更新
```sql
UPDATE table1
SET table1.value = (SELECT table2.CODE FROM table2 WHERE table1.value = table2.DESC)
WHERE table1.UPDATETYPE = 'blah'
AND EXISTS (SELECT table2.CODE FROM table2 WHERE table1.value = table2.DESC);
```
这种方式使用子查询来获取需要更新的值,并通过WHERE子句来限定更新的条件。在子查询中,通过连接条件将table1和table2进行关联,然后将table2的CODE值赋给table1的value字段。
方式2:使用UPDATE JOIN语法进行更新
```sql
UPDATE (SELECT table1.value as OLD, table2.CODE as NEW
FROM table1
INNER JOIN table2 ON table1.value = table2.DESC
WHERE table1.UPDATETYPE = 'blah') t
SET t.OLD = t.NEW;
```
这种方式使用UPDATE JOIN语法,将需要更新的表和关联的表通过INNER JOIN进行连接,并通过WHERE子句来限定更新的条件。然后使用SET子句将关联表的CODE值赋给需要更新的字段。
请根据具体的需求选择适合的方式进行联表更新操作。
阅读全文