sql >> Databáze >  >> RDS >> Mysql

Vícenásobný dílčí dotaz s rámcem Zend

Zkuste toto:

$psub=$this->db->select()
    ->setIntegrityCheck(false)
    ->from(array('p'=>'projecttouser'),array('count(p.u_id) as count'))
    //->join(array('i'=>'usermaster'),'p.u_id=i.id') // no need for this join
    ->where('usermaster.id=projecttouser.u_id');

$tsub=$this->db->select()
    ->setIntegrityCheck(false)
    ->from(array('t'=>'tasktotarget'),array('count(t.assigned_to) as tcount'))
    ->where('usermaster.id=tasktotarget.assigned_to');

$tasub=$this->db->select()
    ->setIntegrityCheck(false)
    ->from(array('ta'=>'tasktotarget'),array('count(ta.assigned_to) as tacount'))
    ->where('usermaster.id=tasktotarget.assigned_to AND tasktotarget.is_active = 1 ');

$sql=$this->db->select()
    ->setIntegrityCheck(false)
    ->from(array('u'=>'usermaster'), array('usermaster.*', 
            'proj' => new Zend_Db_Expr('(' . $psub . ')'),
            'target' => new Zend_Db_Expr('(' . $tsub . ')'),
            'active' => new Zend_Db_Expr('(' . $tasub . ')')))
    ->group('u.id')
    //->order($order_by . ' ' . $order)
    ->where('u.is_delete=false');

$resultSet = $this->fetchAll($sql);
return $resultSet;

Dokument:http://framework.zend.com/manual /1.12/cs/zend.db.select.html




  1. Jak se připojit k mysql pomocí laravel?

  2. ScaleGrid zařazen mezi 100 nejlepších poskytovatelů cloudových služeb

  3. Jak přimět mysqli pracovat s DELIMITER v příkazech SQL?

  4. jak vyřešit Obecnou chybu:2014 Nelze provádět dotazy, dokud jsou aktivní ostatní dotazy bez vyrovnávací paměti. pomocí připojení PDO