首页 文章

对于每个循环SQL

提问于
浏览
0

表格1

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;
}

是否存在insert / select语句?或者我必须使用循环?

1 回答

  • 0

    您根本不需要使用循环 . 在使用关系数据库时,您应该考虑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
    

相关问题