2013-01-18 39 views
0

我使用PHP脚本导入从CSV文件,表1的值,然后使用内部联接从表1表2更新的领域:MySQL的值CSV导入第2次更新后到最大

UPDATE table2 AS t2 
INNER JOIN 
    (
    SELECT field, id 
    FROM table1 ) AS t1 ON (t2.id=t1.id) 
SET t2.field = t2.field+t1.field; 

然而, ,如果我执行两次导入,则第一次导入时更新的字段而不是第二次导入的字段将更新为最大值9999.999,字段类型Decimal(7,3)。 任何想法为什么和适合的解决方案是什么? P.S表1中的值是正确的。

+1

添加一些示例数据,确实不存在的领域应该更新被排除在外! – jtheman

+0

我对你的查询没有问题,可能是你需要左连接然后内连接 – Reinstar

回答

0

使用简单的更新语法

UPDATE table2 AS t2, table1 AS t1 
SET t2.field = t2.field+t1.field 
WHERE (t2.id=t1.id)