2013-08-22 148 views
0

表1對於每一個循環SQL

ID

表2

ID

表3

ID | table1_id | table2_id

我需要的SQL(使用MySQL)語句用於:

for each row in table1 { 
    for each row in table2 { 
     insert in table3 values table1.id, table2.id; 
} 

插入/選擇語句是否存在?或者我必須使用循環?

回答

0

根本不需要使用循環。在使用關係數據庫時,您應該考慮SETS。

以下是實現此目的的正確方法。首先使用CROSS JOIN創建表1和表2中ID的所有組合的笛卡爾組。然後插入整個表3 注:我假設表3 ID是一個自動編號。

INSERT INTO TABLE3 (TABLE1_ID,TABLE2_ID) 
SELECT T1.ID 
     ,T2.ID 
FROM TABLE1 T1 
CROSS JOIN 
     TABLE2 T2 
+0

它工作的很完美! –