2012-03-28 68 views
0

之间更新字段我在第一个(t1)两个不同的表MYSQL:最简单的方式,以表2

我有

Table [t1] 
id  Product_URL 

Table [t2] 
id  Product_id Product_URL 

我想(从T2)UPDATE ALL的product_id场的第一

WHERE t1.product_url = t2.product_url 

的ID我能做到这一点。在一个查询?

回答

1
UPDATE t2 
JOIN (
    SELECT t2_2.id, t1.id as new_id 
    FROM 
     t2 t2_2 JOIN 
     t1 ON t2_2.product_url = t1.product_url AND t2_2.product_id <> t1.id 
    ORDER BY t2_2.id 
    LIMIT 5000 
) sub ON t2.id = sub.id 
SET id = sub.new_id; 

编辑:It looks like mutli-table updates do not play well with LIMIT and ORDER BY,但这里是完成同样的事情在另一个查询...

+0

冷静,感谢名单。如果行数太多会怎样?我不得不分成5000块的例子,在哪里放LIMIT? – 2012-03-28 04:51:08

+0

@ DS_web_developer请参阅我的编辑...批量新的答案更新5000 ... – 2012-03-28 04:54:08

+0

不允许在那里,不允许排序和限制 – 2012-03-28 06:43:33