表1
ID
表2
ID
表3
ID|テーブル1_ID|テーブル2_ID
次の SQL (MySQL を使用) ステートメントが必要です。
for each row in table1 {
for each row in table2 {
insert in table3 values table1.id, table2.id;
}
insert/select ステートメントは存在しますか? または、ループを使用する必要がありますか?
ループを使用する必要はまったくありません。リレーショナル データベースを使用する場合は、SETS の観点から考える必要があります。
これを達成する正しい方法は次のとおりです。最初に を使用して、CROSS JOIN
table1 と table2 の ID のすべての組み合わせのデカルト セットを作成します。次に、そのセット全体を table3 に挿入します 注: Table3 ID は自動番号であると想定しています。
INSERT INTO TABLE3 (TABLE1_ID,TABLE2_ID)
SELECT T1.ID
,T2.ID
FROM TABLE1 T1
CROSS JOIN
TABLE2 T2