【问题标题】:Symfony Doctrine_Query DELETE with INNER JOINSymfony Doctrine_Query DELETE 与 INNER JOIN
【发布时间】:2011-04-22 15:45:00
【问题描述】:

我正在使用 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。

【问题讨论】:

    标签: doctrine symfony1 inner-join sql-delete


    【解决方案1】:

    应该这样做

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

    【讨论】:

    • 谢谢,但我仍然没有运气。也许我在查询形式中做错了什么,但我经常使用 Doctrine_Query,所以我不这么认为:语法错误或访问冲突 ... Doctrine_Connection->exec('DELETE FROM player_card INNER JOIN player p2 ON p .player_id = p2.id WHERE (game_id = ?)', array('21'))
    • 其实你知道我什至不太在意这个,所以我将使用我原来的原始 SQL。
    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 2012-02-16
    • 2017-08-31
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多