相关疑难解决方法(0)

MySQL错误1093 - 无法在FROM子句中指定更新的目标表

story_category我的数据库中有一个表有损坏的条目.下一个查询返回损坏的条目:

SELECT * 
FROM  story_category 
WHERE category_id NOT IN (
    SELECT DISTINCT category.id 
    FROM category INNER JOIN 
       story_category ON category_id=category.id);
Run Code Online (Sandbox Code Playgroud)

我试图删除它们执行:

DELETE FROM story_category 
WHERE category_id NOT IN (
    SELECT DISTINCT category.id 
    FROM category 
      INNER JOIN story_category ON category_id=category.id);
Run Code Online (Sandbox Code Playgroud)

但我得到了下一个错误:

#1093 - 您无法在FROM子句中为更新指定目标表'story_category'

我怎么能克服这个?

mysql subquery mysql-error-1093 sql-delete

556
推荐指数
10
解决办法
42万
查看次数

使用LEFT JOIN更新Doctrine 2

SELECT - 好吧,没有错误

$em = $this->get('doctrine.orm.entity_manager');

$query = $em->createQuery("
    SELECT c
    FROM MyDemoBundle:Category c
    LEFT JOIN c.projects p
    WHERE c.isActive = true
    AND p.id = 1
");
$result = $query->getResult();
Run Code Online (Sandbox Code Playgroud)

更新 - 异常[语义错误]

$query = $em->createQuery("
    UPDATE MyDemoBundle:Category c
    LEFT JOIN c.projects p
    SET c.isActive = false
    WHERE p.id = ?1
");
$query->setParameter(1, $id);
$query->execute();
Run Code Online (Sandbox Code Playgroud)

php doctrine-orm

5
推荐指数
1
解决办法
6197
查看次数