目前正在寻找从2个表中提取数据并插入另一个表中的数据。 表格如下(带有示例理想数据):
Table1
T1ID(PK) T1Field1
301 2011-07-01
302 2011-07-01
Table2
T2ID(PK) T2Field2 T2Field3 T2Field4
521 301 555 Apple
522 301 666 Pear
Table3 (new table)
T3Field1 T3Field2 T3Field3 T3Field4
301 2011-07-01 555 Apple
301 2011-07-01 666 Pear
要查找要使用的最少且最有效的查询,请执行以下操作:
Insert T1ID into T3Field1 + Insert T1Field1 into T3Field2
Update T3Field3 where T3Field1 = T2Field2 (for each) -
*
只是使用mysql insert进行第一次查询。这个需要首先完成,因为它包含时间戳信息。
*在这里尝试INNER JOIN没有运气,因为有一对多,只插入第一行。
我可以选择所有结果,然后在每个记录中循环/更新,但我尽量保持尽可能小。
只需要对逻辑提出第二意见!
答案 0 :(得分:0)
我测试了以下代码,它符合您的理想数据。但是,由于Table1
Table2
的第二行会丢失
INSERT INTO Table3
SELECT
Table1.T1ID AS T3Field1,
Table1.T1Field1 AS T3Field2,
Table2.T2Field3 AS T3Field3,
Table2.T2Field4 AS T3Field4
FROM Table1, Table2
WHERE
Table1.T1ID = Table2.T2field2