Sql 对另一个表列中的每个值重复相同的数据

Sql 对另一个表列中的每个值重复相同的数据,sql,Sql,我有两个数据表: +---------+--------+ +---------+ |Account | Value | | Version | +---------+--------+ +---------+ | 1 | 10 | | a | +--------

我有两个数据表:

+---------+--------+                          +---------+
|Account  | Value  |                          | Version |
+---------+--------+                          +---------+
| 1       |  10    |                          |    a    |
+---------+--------+                          +---------+
| 2       |  20    |                          |    b    |
+---------+--------+                          +---------+
基本上,我想做的是将列版本添加到第一个表中,并为每个版本重复数据,例如:

+---------+--------+---------+
|Account  | Value  | Version |
+---------+--------+---------+
| 1       |  10    |    a    |                       
+---------+--------+---------+               
| 2       |  20    |    a    |                
+---------+--------+---------+
| 1       |  10    |    b    |
+---------+--------+---------+
| 2       |  20    |    b    |
+---------+--------+---------+
不幸的是,我不能硬写版本名,因为它们经常更改,但数据本身是静态的。知道如何使用SQL吗?

这听起来像是交叉连接:

这将生成两个表的笛卡尔乘积-这正是您的问题所描述的


请注意,如果其中一个表为空,则不会返回任何行。

可以通过两种方式执行此操作:

首先:通过执行下面的脚本,您将获得所需的表

create table yourTableName as 
(select t1.*, t2.*
  from table1 t1 cross join
 table2 t2
)
第二:

将列版本添加到表1中作为可空

更改表1添加列版本varchar20

将组合数据插入表1

在表1中插入帐户、值、版本 选择t1、t2* 来自表1 t1交叉连接 表2 t2

删除版本列为空的行

从表1中删除,其中版本为空


非常感谢。我完全忘记了交叉连接,一整天都在努力使更难的解决方案有效。
create table yourTableName as 
(select t1.*, t2.*
  from table1 t1 cross join
 table2 t2
)