联接两个表,将值插入第二个表

时间:2018-11-13 23:02:42

标签: sql sql-server

我尝试在这里搜索类似的解决方案,但没有找到解决方案,因此我想知道什么是完成以下任务的最佳方法。 我有一张桌子

Table1 t1
t1.c1 ..
1
2
3
4
5
6

并有另一个这样的表

Table2 t2
t2.c1   t2.c2   t2.c3  ..
1         v1     v2
2         v3     v4
3         v5     v6
5         v7     v8  
7         v9     v10

我需要插入/更新表2 它的t2.c1 = 7 所以结果看起来像这样

t2.c1   t2.c2   t2.c3  ..
1         v1     v2
2         v3     v4
3         v5     v6
5         v7     v8  
1         v9     v10
2         v9     v10
3         v9     v10
4         v9     v10
5         v9     v10
6         v9     v10

我试图首先查看t2.c1列中是否存在值7。如果存在,则插入新行。插入后,删除值7的行,但我真的不知道该怎么做。 谁能给我一些想法解决这个问题?

2 个答案:

答案 0 :(得分:0)

对于所有t2的记录,您似乎都需要表t1t2.c1 = 7的笛卡尔积,例如:

INSERT INTO Table2
SELECT t1.c1, t2.c2, t2.c3
FROM Table1 t1, Table2 t2
WHERE t2.c1 = 7

其后用t2.c1 = 7删除这些记录,例如:

DELETE FROM Table2 t2 WHERE t2.c1 = 7

答案 1 :(得分:0)

首先删除c1 = 7,然后从table1中填充数据

DELETE FROM Table2
WHERE c1 = 7;

INSERT INTO Table2 (c1,c2,c3) 
SELECT t1.c1,t1.c2,t1.c3
FROM Table1 as t1;

FIDDLE