MySQL:为表中的每个不同值为外表中的每个键插入一行

Bav*_*sjo 2 mysql sql

表格1:

col1  |  col2
-------------
0      value1
1      value1
2      value1

0      value2
1      value2

2      value3
Run Code Online (Sandbox Code Playgroud)

主键是col1和col2在一起

表2:

col1  | col3
-------------
0      name1
1      name2
2      name3
Run Code Online (Sandbox Code Playgroud)

主键是col1.table1中的col1表示table2中的col1.

如果col1 + col2密钥对尚不存在,我需要一个mysql查询,该查询遍历table1中的每个不同col2,并为table2中的每个col1 INSERTS一列.

所以基本上在运行此查询后,table2应该看起来一样,table1应该如下所示:

col1  |  col2
-------------
0      value1
1      value1
2      value1

0      value2
1      value2
2      value2

0      value3
1      value3
2      value3
Run Code Online (Sandbox Code Playgroud)

我知道如何用PHP中的循环来做到这一点,但我正试图摆脱学习更多的SQL.

cha*_*aos 8

INSERT IGNORE INTO `table1`
SELECT DISTINCT `table2`.`col1`, `table1`.`col2`
FROM `table1`
JOIN `table2`
Run Code Online (Sandbox Code Playgroud)