如何从每个组合的两个表中插入表主键?

Mic*_*ski 2 sql sql-server

我使用的是MS SQL Server,我有3个表,A,B和C.A和B都有名为Id的列.我想在C中插入每个组合的值,所以假设表A有数据:

Id
1
2
3
Run Code Online (Sandbox Code Playgroud)

表B有数据:

Id
4
5
Run Code Online (Sandbox Code Playgroud)

我试图让表C有数据:

Id | A_Id| B_Id
1  |1    | 4
2  |1    | 5
3  |2    | 4
4  |2    | 5
5  |3    | 4
6  |3    | 5
Run Code Online (Sandbox Code Playgroud)

我将非常感谢任何帮助.

Yog*_*rma 6

你需要cross join:

select *
from tablea a cross join
     tableb b
order by a.id;
Run Code Online (Sandbox Code Playgroud)

所以,你可以使用insert声明:

insert into tablec (A_Id, B_Id)
     select *
     from tablea a cross join
          tableb b
     order by a.id;
Run Code Online (Sandbox Code Playgroud)