我有一个表 A 有列 (id, field_1,field_2),另一个表 B 有列 (id,field_2)
现在我想将表 B 合并到 A,这意味着我想将表 A 中的 field_2 更新为表 B 的值。那么如何实现呢?顺便说一句,我正在使用 oracle
谢谢
a_h*_*ame 30
关联子查询的另一种方法(由 Kerri 建议)是使用 MERGE 语句,这可能比子选择(只能通过查看两个语句的执行计划来验证)更有效。
MERGE INTO table_b
USING
(
SELECT id,
field_2
FROM table_a
) ta ON (ta.id = table_b.id)
WHEN MATCHED THEN UPDATE
SET table_b.field_2 = ta.field_2
Run Code Online (Sandbox Code Playgroud)
Ker*_*tts 15
不完全确定您在此之后想要什么,但这应该是一次性的,或者通过预定的工作连续工作:
UPDATE table_a a
SET field_2 = ( SELECT field_2
FROM table_b b
WHERE b.id = a.id )
;
Run Code Online (Sandbox Code Playgroud)
现在,每次执行上述操作时,它都会在表中的所有行中执行。如果这是你需要一直做的事情,我会建议其他的东西,但对于一次性或非常小的桌子,它应该足够了。
| 归档时间: |
|
| 查看次数: |
350038 次 |
| 最近记录: |