sql - 如何将其他两个表的主键插入表中以进行每种组合?

标签 sql sql-server

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

Id
1
2
3

B表有数据:

Id
4
5

我正在尝试实现 C 表中的数据:

Id | A_Id| B_Id
1  |1    | 4
2  |1    | 5
3  |2    | 4
4  |2    | 5
5  |3    | 4
6  |3    | 5

我将不胜感激任何帮助。

最佳答案

你需要cross join :

select *
from tablea a cross join
     tableb b
order by a.id;

因此,您可以使用insert 语句:

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

关于sql - 如何将其他两个表的主键插入表中以进行每种组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51770504/

相关文章:

mysql - SQL查询LIKE语句错误

mysql - 将两个 select 语句合并/合并为一个

sql-server - 删除大型表中的列时的注意事项

sql-server - 将 Entity Framework 连接字符串转换为SQL Server Express

sql-server - Crystal Reports 到 MS SQL Server Reporting Services 转换的简单方法

sql - 如何在 SQL Server 树格式表中将子描述添加到父标题

MySql - 关于重复键插入

sql - 查询以查找列的 nᵗʰ 最大值

sql - 按最小值选择列 - 分组依据

sql - 日期时间转换或转换?