使用INNER JOIN删除Symfony Doctrine_Query

时间:2011-04-22 15:45:01

标签: doctrine symfony1 inner-join sql-delete

我正在使用symfony + doctrine,我想用连接执行删除查询。请参阅下面的我正在使用的代码,该代码可以正常工作。

$sql = 'DELETE a
 FROM a
 INNER JOIN b ON a.b_id = b.id
 WHERE b.c_id = :c_id';

$pdo = Doctrine_Manager::getInstance()->getCurrentConnection()->getDbh();
$stmt = $pdo->prepare($sql);
$params = array('c_id' => $c_id);
$stmt->execute($params);

任何人都知道如何使用:

Doctrine_Core::getTable('a')

或者

Doctrine_Query::create()->delete()->from('a')

我也没有运气。

我真的不想在我的应用程序中使用原始SQL。

1 个答案:

答案 0 :(得分:1)

这样的事情应该这样做

Doctrine_Query::create()
    ->delete('a a')
    ->innerJoin('a.b b')
    ->where('b.c_id = ?', $c_id)
    ->execute()