Another SQL tool you could use is MERGE
--Create first table
CREATE TABLE #aa(
username varchar(50),
userid varchar(50),
userfullname varchar(50),
useremail varchar(50)
)
GO
--Create second table
CREATE TABLE #bb(
username varchar(50),
userid varchar(50),
userfullname varchar(50),
useremail varchar(50)
)
GO
--Insert all data into temp table #aa
INSERT #aa (username,userid,userfullname,useremail)
VALUES
('AAA','ID1','JOHN DOE','[email protected]'),
('BBB','ID2','BILLY BOB','[email protected]'),
('CCC','ID3','TOM HANKS','[email protected]'),
('DDD','ID4','CONNOR MCGREGOR','[email protected]'),
('EEE','ID5','FLOYD MAYWEATHER','[email protected]')
GO
--Insert only the username in temp table #bb
INSERT #bb (username)
VALUES
('AAA'),
('BBB'),
('CCC'),
('DDD'),
('EEE')
GO
--See #bb before
SELECT * FROM #bb
MERGE #bb AS TARGET
USING #aa AS SOURCE
ON TARGET.username = SOURCE.username
WHEN MATCHED
THEN UPDATE SET
TARGET.userid = SOURCE.userid,
TARGET.userfullname = SOURCE.userfullname,
TARGET.useremail = SOURCE.useremail;
GO
--See #bb after
SELECT * FROM #bb
DROP TABLE #aa
DROP TABLE #bb
Before Merge
+----------+--------+--------------+-----------+
| username | userid | userfullname | useremail |
+----------+--------+--------------+-----------+
| AAA | NULL | NULL | NULL |
| BBB | NULL | NULL | NULL |
| CCC | NULL | NULL | NULL |
| DDD | NULL | NULL | NULL |
| EEE | NULL | NULL | NULL |
+----------+--------+--------------+-----------+
After Merge
+----------+--------+-------------------+----------------+
| username | userid | userfullname | useremail |
+----------+--------+-------------------+----------------+
| AAA | ID1 | JOHN DOE | [email protected] |
| BBB | ID2 | BILLY BOB | [email protected] |
| CCC | ID3 | TOM HANKS | [email protected] |
| DDD | ID4 | CONNOR MCGREGOR | [email protected] |
| EEE | ID5 | FLOYD MAYWEATHER | [email protected] |
+----------+--------+-------------------+----------------+