如何为另一个表的每个id在一个表中插入多行

时间:2016-03-25 17:14:44

标签: sql sql-server sql-server-2008

我有2个表(20000 +行):

表1:

_N_

表2:

C1_ID |C1_Name | L1_ID | C2_ID 
------------------------------------
a     | Alan   |123    |  k     
b     | Ben    |345    |  l     
a     | Alan   |123    |  m     
a     | Alan   |453    |  n     
c     | John   |111    |  i     
f     | Sasha  |987    |  e
c     | John   |111    |  s    
c     | John   |756    |null
z     | Peter  |145    |null

期望的输出:

C2_ID |L2_ID|Category
---------------------
k     |888 |1
k     |789 |2
k     |888 |1
l     |456 |0
l     |147 |1
m     |333 |1
n     |999 |2
n     |369 |4
n     |258 |3
i     |159 |2
i     |357 |1
e     |684 |1
s     |153 |2

我需要更新表1并在每次添加行时在表2中找到C2_ID(具有不同的L2_ID)。 应使用相关的L2_Id和Category更新该行。

1 个答案:

答案 0 :(得分:1)

这是一个简单的连接。

SELECT * 
FROM TABLE1 T1
LEFT JOIN 
 (SELECT DISTNCT C2_ID, L2_ID, Category
  FROM TABLE2) AS T2 ON T1.C2_ID = T2.C2_ID