为每行做更新

时间:2013-10-17 13:18:07

标签: mysql sql

我有一个很大的查询来创建一个像临时表但不是临时表的支持表, 在我的查询中创建此表的一个字段是非常有问题的,没有他我在15秒内创建一个包含大量子查询的50k行表。 有了这个字段我就无法运行,我的4gb ram刚刚全部完成并且没有完成查询, 所以我拿出这个字段,我在没有字段的情况下运行查询,创建表格,之后我会运行其他查询只是为了逐个更新。

我的字段查询就是这个:

(select GROUP_CONCAT(nome) from con_classificador where FIND_IN_SET(id,(SELECT CONCAT(GROUP_CONCAT(fk),GROUP_CONCAT(pac.fk_classificador))
                                    FROM prod_assoc_classificador AS pac
                                    LEFT JOIN con_classificador AS cc4 ON pac.fk_classificador = cc4.id
                                    where pac.fk_produto = #HERE ID#)) and id != 7) AS categorias_texto

所以我将此表与fk_produto一起使用,并且我需要将它与此子查询一起加入并获取结果并更新每一行。

所以我在aux表上有这个categorias_texto行,需要用这个查询和#HERE ID#来提供它必须加入aux表和这个子查询

我知道它有点疯狂,但我不知道我怎么能更好地解释。

1 个答案:

答案 0 :(得分:2)

使用效率高于JOIN

SUBQUERY进行尝试
update 
tableA as ta 
inner join tableB as tb on ta.fk_product = tb.id
set ta.title = tb.title