mysql中错误:1093-You can’t specify target table for update in FROM clause的解决方法

标题的意思就是:UPDATE table SET colum_1 = 1 WHER id IN (selet id FROM table)

执行这类型的SQL语句的话,就会这种错误.不能对进行查询操作的表进行update操作

解决办法 把查询条件 单独作为一个表去INNER join

  1. UPDATE project p_update
  2. INNER JOIN
  3. (
  4. SELECT
  5. p_select.id ,p_select.construction_child_type
  6. FROM
  7. project p_select
  8. INNER JOIN project_cglxbb ON p_select.id = project_cglxbb.project_id
  9. WHERE
  10. p_select.if_child = 1
  11. AND p_select.project_type = 1
  12. ) p_join ON p_update.parent_child_id = p_join.id
  13. SET p_update.construction_child_type = p_join. construction_child_type