表格1
ID
表2
表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; }
是否存在insert / select语句?或者我必须使用循环?
您根本不需要使用循环 . 在使用关系数据库时,您应该考虑SETS .
这是实现这一目标的正确方法 . 首先使用 CROSS JOIN 创建一个由table1和table2组成的所有id组合的笛卡尔集合 . 然后将整个集合插入table3注意:我假设Table3 ID是一个自动编号 .
CROSS JOIN
INSERT INTO TABLE3 (TABLE1_ID,TABLE2_ID) SELECT T1.ID ,T2.ID FROM TABLE1 T1 CROSS JOIN TABLE2 T2
1 回答
您根本不需要使用循环 . 在使用关系数据库时,您应该考虑SETS .
这是实现这一目标的正确方法 . 首先使用
CROSS JOIN
创建一个由table1和table2组成的所有id组合的笛卡尔集合 . 然后将整个集合插入table3注意:我假设Table3 ID是一个自动编号 .