【问题标题】:For each loop SQL对于每个循环 SQL
【发布时间】:2013-08-23 02:31:09
【问题描述】:

表1

身份证

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

是否存在插入/选择语句?还是我必须使用循环?

【问题讨论】:

    标签: sql loops insert


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-22
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多