构造表复制/更新MYSQL的查询

时间:2011-07-19 21:00:08

标签: php mysql sql sql-update

目前正在寻找从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

要查找要使用的最少且最有效的查询,请执行以下操作:

  1. Insert T1ID into T3Field1 + Insert T1Field1 into T3Field2

  2. Update T3Field3 where T3Field1 = T2Field2 (for each) - *

  3. 只是使用mysql insert进行第一次查询。这个需要首先完成,因为它包含时间戳信息。

    *在这里尝试INNER JOIN没有运气,因为有一对多,只插入第一行。

    我可以选择所有结果,然后在每个记录中循环/更新,但我尽量保持尽可能小。

    只需要对逻辑提出第二意见!

1 个答案:

答案 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