如何基于匹配customer_id将表B列追加至表A且不使用JOIN?
实现表B列追加至表A的解决方案(无需JOIN)
完全可以实现你的需求,你之前的语句失效是因为关联字段写错了——你明确说明两表的关联列是customer,但原语句里误用了id作为匹配条件,导致没有匹配到数据,自然不会执行更新操作。
修正后的操作步骤如下:
先给表A新增需要从表B同步的列
-- 按需添加对应数据类型的列,这里以col4为例 ALTER TABLE a ADD (col4 VARCHAR2(10));如果要同步多个列,可一次性完成添加:
ALTER TABLE a ADD (col4 VARCHAR2(10), col5 NUMBER, col6 DATE);执行修正关联条件的MERGE语句
将匹配条件改为正确的customer列,同时支持批量更新多个列:MERGE INTO a USING b ON (b.customer = a.customer) WHEN MATCHED THEN UPDATE SET a.col4 = b.col4, a.col5 = b.col5, a.col6 = b.col6; -- 按需添加要同步的列验证结果(可选)
可以用查询确认数据是否同步成功:SELECT a.customer, a.col4, b.col4 FROM a LEFT JOIN b ON a.customer = b.customer WHERE a.col4 IS NOT NULL;这里的JOIN仅用于验证,不会影响你将数据统一存储在表A的需求。
内容的提问来源于stack exchange,提问作者Godwin Regina
相关产品推荐
相关产品推荐

