I'm using SQL Server. I have a table Users
with 2 columns ID
(string) and Info
(string), and a table Positions
with 2 columns PositionID
(int) and Description
(string).
I need to insert one record into table Links
with 2 columns: UserID
(string) and PositionID
(int), for each record in table Positions
.
Thus, given Users.ID = "JOE" and 3 records in Positions
table with IDs 1 through 3, I need to insert 3 records into Links
:
UserID | PositionID
------- -----------
JOE | 1
JOE | 2
JOE | 3
Is this achievable with a single statement?
CodePudding user response:
You can insert the result of a select statement. For example:
insert into links (user_id, position_id)
select 'JOE', position_id from positions
CodePudding user response:
Adding to @The impaler's solution
insert into links (user_id, position_id)
select 'JOE', 1 from positions
union all select 'JOE', 2 from positions
union all select 'JOE', 3 from positions