根据查询将数据插入列

时间:2017-11-13 20:20:08

标签: sql join sql-update

我有两张桌子。我想要更新的表是表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 

2 个答案:

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