Zend Framework:Zend_Db_Select - 如何加入自定义子查询表?

Som*_*ody 4 zend-framework

$select->joinRight(array('i' => '(SELECT * FROM images ORDER BY image_id)'),'i.ad_id = '. $main .'.id',$imarray);
Run Code Online (Sandbox Code Playgroud)

像这样不起作用.子查询获取内部引号.

像那样:

RIGHT JOIN `(SELECT * FROM images ORDER BY image_id)` AS `i` ON i.ad_id = a.id
Run Code Online (Sandbox Code Playgroud)

谢谢 ;)

Tom*_*far 11

使用

$select->joinRight(
    array('i' => new Zend_Db_Expr('(SELECT * FROM images ORDER BY image_id)')),
    'i.ad_id = '. $main .'.id',
    $imarray
);
Run Code Online (Sandbox Code Playgroud)

  • 我想到了,但心情很好.这就是为什么它不是RTFM:D (4认同)

小智 5

我觉得这更容易阅读和导航......

      $sub = $this->select()
            ->setIntegrityCheck(false)
            ->from(array('i' => 'images'), array('*'))
            ->order('i.image_id');

$select = $this->select()
             ->setIntegrityCheck(false)
             ->from(array('m' => 'MAIN_TABLE'), array('*'))
             ->joinRight(array('i' => $sub), 'i.ad_id = m.id', array('*'));

   return $this->select($select);
Run Code Online (Sandbox Code Playgroud)