DQL更新多个表

时间:2014-09-16 09:06:51

标签: mysql sql symfony sql-update dql

我试图在一个查询中更新某些表中的行。我已经完成了:

        $this->getDoctrine()->getManager()
            ->createQuery('
            UPDATE eo, tw FROM       
            ProEntityOneBundle:EntityOne eo,
            ProEntityTwoBundle:EntityTwo tw
            SET eo.propertyOne = :newProperty,
                tw.propertyTwo = :newProperty
            WHERE eo.propertyOne = :oldProperty
                AND tw.propertyTwo = :oldProperty')
            ->setParameters(array('newProperty' => $newProperty, 'oldProperty' => $oldProperty))
            ->execute();

但是我收到了这个错误:

  

[语义错误]第0行,第24行附近' eo,tw':错误:类' eo'没有定义。

我做错了什么?是否可以使用DQL更新一个查询中的某些表?

1 个答案:

答案 0 :(得分:2)

这是不可能的。每个Doctrine查询都映射到针对数据库执行的单个SQL语句,并且您无法在语句中更新多个表。