2009-07-21 41 views
2

表1:MySQL的:插入一排用於表在外國表中的每個鍵爲每個不同的值

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引用表2中的col1。

我需要一個mysql查詢,通過table1中的每個不同的col2,並且如果col1 + col2 keypair尚不存在,則爲table2中的每個col1插入一列。

所以基本上是運行此查詢後,表2應該是相同的,表1應該是這樣的:

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

0  value2 
1  value2 
2  value2 

0  value3 
1  value3 
2  value3 

我知道如何在PHP循環做到這一點,但我試圖讓遠離學習更多的SQL。

回答

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

謝謝你的研究和時間!奇蹟般有效! 已插入563行。 (查詢花費了0.0140秒) – Baversjo 2009-07-21 07:24:54

相關問題