我有这两张桌子:
Table P
A | B
---------
X | 2
X | 7
X | 10
X | 28
Y | 24
Mapping M
C | D
-----------
7 | 2136
28 | 786
24 | 4212
124 | 5311
935 | 6012
如果我能找到表P中B列的匹配值和映射M的C列中的值,我还需要将D列的值添加到表P中。
例如,表P的X和2的第1条记录,我在映射M的C列中找不到2,所以不会添加任何内容。
第二个记录X和7,我可以在C栏中找到7,所以我要将X和2136添加到表P中。
因此被添加到表P中:
X | 2136
X | 786
Y | 4212
我发现插入这3行很有挑战性。
我可以这样做:
SELECT P.*, M.D FROM @TableP P
JOIN @MappingTable M ON (P.B = M.C)
并将结果放入TEMP表和INSERT中,但如何在1 INSERT语句中执行此操作?
答案 0 :(得分:1)
我刚刚意识到这很简单:
INSERT INTO @TableP
SELECT P.A, M.D FROM @TableP P
JOIN @MappingTable M ON (P.B = M.C)