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

时间:2009-07-21 07:05:20

标签: sql mysql

表1:

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

0      value2
1      value2

2      value3

主键是col1和col2在一起

表2:

col1  | col3
-------------
0      name1
1      name2
2      name3

主键是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

我知道如何使用php中的循环执行此操作,但我正试图摆脱学习更多sql。

1 个答案:

答案 0 :(得分:8)

INSERT IGNORE INTO `table1`
SELECT DISTINCT `table2`.`col1`, `table1`.`col2`
FROM `table1`
JOIN `table2`