SQL附加查询

时间:2016-12-08 18:09:58

标签: sql

请帮助,我在下面有两个表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 

3 个答案:

答案 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;