1

doctrine 1.2 の更新ステートメントでサブクエリを使用するのに多くの問題があります。サブクエリの結果にフィールドを設定したいのですが、それは不可能に思えます。これは私がソファーで試したものです。

$query = Doctrine_Query::create()->from('Users_Model_Book b');    
$subSelect = $query->createSubquery()->select('ROUND(SUM(br.rating) / COUNT(br.id))')->from('b.BookRating')->where('b.BookRating.book_id = b.id');
$query->update()->set('bookrating', '('.$subSelect->getDql().')')->where('b.id = ?', $this->id)->getRawSql();

「不明なコンポーネント エイリアス br」が表示されます

    $q = new Doctrine_RawSql();
    $q  ->addComponent('b', 'Users_Model_Book')
        ->addComponent('br', 'Users_Model_BookRating')
        ->update('b')
        ->set('b.bookrating', 'ROUND(SUM(br.rating) / COUNT(br.id)')
        ->where('b.id = ' . (bool) $this->id);
    echo $q->getSqlQuery();

SELECT b.id AS b_id , br.id AS br _id FROM b WHERE b.id = 1を返します

私を助けることができる人はいますか?

4

0 に答える 0