1

这让我很难过。

MySQL

UPDATE sets SET sets.current_count = (SELECT COUNT(leads_auto.set_id) AS current_count FROM leads_auto WHERE leads_auto.set_id =  (SELECT sets.set_id AS setID FROM sets WHERE sets.on_off = 0)) WHERE sets.on_off = 0

似乎是对的不是吗?使用列值为 0的表的值为0的current_count总行数更新记录。leads_autoset_idset_idsetson_off

但我得到这个错误

#1093 - You can't specify target table 'sets' for update in FROM clause

我环顾四周,有人提到这与循环操作有关?

4

1 回答 1

2

为结果创建一个临时表SET

UPDATE sets
SET sets.current_count = 
                (
                SELECT COUNT(leads_auto.set_id) AS current_count
                FROM leads_auto
                WHERE leads_auto.set_id = 
                                (
                                    SELECT set_id
                                    FROM
                                    (
                                        SELECT sets.set_id AS setID
                                        FROM sets
                                        WHERE sets.on_off = 0
                                    ) c
                                )
                )
WHERE sets.on_off = 0
于 2012-10-06T15:27:36.433 回答