我正在尝试使用以下语法简化更新查询:
UPDATE cl
SET cl_s="active_"
WHERE id in (
SELECT distinct
c.id
from
cl c,
ac a,
cl_ac ac
where
c.id=ac.cl_id
and
a.id=ac.ac_id
and
c.cl_s="someval"
and
a.ac_no !=""
)
;
我得到的错误是:错误代码:1093。您无法在FROM子句中指定要更新的目标表
我已经阅读了一些帖子,其中提到MySQL无法运行这样的查询。我想知道一种无缝的方法来将此类查询重组为有效的结构。解决方案似乎是改用联接,但我似乎无法理解这个概念。
伪代码将有助于理解。
(Main query)
where var in (subquery generating var list)
到
(main query) inner join (subquery generating var list) on var ???