我有两张桌子。我想要更新的表是表A,它没有一些ID ProfileID。另一方面,表B具有所有ID。我试图根据查询更新表A中的列。当我加入表格时,我在查询中得到所有结果,当我尝试在我的列中更新/插入结果时,我得到一个无法插入到我的表中。我打算用以下查询插入我的结果
insert into TableA a
(profileID)
select b.profileID
from tableA
join TableB B on B.userID = A.userID
where a.profileID = '' or a.profileID is null
Table A Table B
UserID | profileID | lastname | Firstname UserID | profileID | lastname | Firstname
0012356 Wung Clara 0012356 15963 Wung Clara
0512356 14753 Williams Michael 0512356 14753 Williams Michael
0956356 Walters Jeff 0956356 94356 Walters Jeff
0486312 68956 Wwagner George 0486312 68956 Wwagner George
select A.*, B.profileID
from TableA A
join TableB B on B.userID = A.userID
Results
UserID | profileID | lastname | Firstname
0012356 15963 Wung Clara
0512356 14753 Williams Michael
0956356 94356 Walters Jeff
0486312 68956 Wwagner George
答案 0 :(得分:2)
你不应该使用' INSERT'更新表的语句。而是使用' UPDATE'。
UPDATE tableA SET tableA.profileID = tableB.profileID FROM tableB b
INNER JOIN TableA a ON a.userID = b.userID WHERE
a.profileID = '' OR a.profileID IS NULL;
答案 1 :(得分:0)
您需要使用TableA
声明更新您的表格UPDATE
而不是INSERT INTO
:
UPDATE TableA
SET TableA.profileID = TableB.profileID
FROM TableB
INNER JOIN TableA ON TableA.userID = TableB.userID
WHERE TableA.profileID = '' OR TableA.profileID IS NULL