请帮助,我在下面有两个表Table_A和Table_B,我想将Table_B中的数据附加到Table_A,其中Table_A.C1 = Table_B.C1。 Table_A最终结果如下。
Table_A
C1 | C2
-------- ---------
1@a.com | e@a.com
Table_B
C1 | C2
-------- ---------
1@a.com | abc@.com
**FINAL RESULT**
Table_A
C1 | C2
-------- ---------
1@a.com | e@a.com; abc@.com
答案 0 :(得分:1)
update ta
set ta.c2 = ta.c2 + ';' + tb.c2
from Table_A ta
inner join Table_B tb on tb.C1 = ta.c1
答案 1 :(得分:0)
我建议的第一件事是良好的数据库规范化,这可能会使你试图解决的问题没有实际意义。见Database Normalization
如果您的数据库尽可能规范化,那么比单独使用表A更好的想法是创建一个视图,其中包含由表A和表B之间的“匹配”组成的行。这是非常糟糕的数据库表格在列中有多个值。
使用:CREATE VIEW table_A_table_B AS SELECT * FROM Table_A JOIN Table_B ON Table_B.C1 = Table_A.C1。
视图的优点是每次更新Table_A或Table_B时视图“table”都会更新。
答案 2 :(得分:0)
您可以使用ANSI MERGE
:
MERGE table_a a
USING table_b b
ON a.c1 = b.c1
WHEN matched THEN
UPDATE SET a.c2 = a.c2 || ';' || b.c2;