2014-10-14 2 views
0

Как я могу подготовить ZF2 запрос из ниже MySQL Queryподготовки ZF2 запроса для конкретного MySQL Query

select (select category_name from categories where category_id = c.parent_id) as category_name 
from 
ebook as e 
join ebook_categories as ec ON ec.ebook_id = e.ebook_id 
join categories as c ON c.category_id = ec.category_id 
where 
e.is_active = 1 
group by category_name 
+0

Вы пробовали что-нибудь до сих пор? – Rikesh

+0

iM действительно сперва к zf У меня есть небольшая идея о нормальном выборе, но не знаю о подзапросах – freakydev

ответ

0

Вы можете сделать это с помощью tablegateway в ZF2.
пример:

public function fetchAllWithLikes($user_id) 
{ 
    $adapter = $this->getAdapter(); 
    $resultset = $this->select(function(Select $select) use ($user_id, $adapter) { 

    $sub1 = new Select('likes'); 
    $sub1->columns(array('total' => new Expression('COUNT(*)'))) 
     ->where(array('id' => new Expression('song_id'))); 

    $sub2 = new Select('likes'); 
    $sub2->columns(array('total' => new Expression('COUNT(*)'))) 
     ->where(array('id' => new Expression('song_id'))) 
      ->where(array('user_id' => $user_id)); 

    $select->columns(
     array(
     'id', 
     'title', 
     'ytlink', 
     'total_likes' => new \Zend\Db\Sql\Expression('?', array($sub1)), 
     'your_likes' => new \Zend\Db\Sql\Expression('?', array($sub2)), 
    ) 
); 

    var_dump($select->getSqlString($adapter->getPlatform())); 

    }); 

    return $resultset->toArray(); 

}

Смежные вопросы