【发布时间】: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;
}
是否存在插入/选择语句?还是我必须使用循环?
【问题讨论】:
表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;
}
是否存在插入/选择语句?还是我必须使用循环?
【问题讨论】:
您根本不需要使用循环。使用关系数据库时,您应该考虑 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
【讨论】: