sql >> Databasteknik >  >> RDS >> Mysql

hur man bygger kapslade select på zend db

Du måste använda Zend_Db_Expr objekt i din fråga och matrisstrukturer för utvald AS .

nedan är lösningen du letar efter:

<?php

$db = Zend_Db_Table::getDefaultAdapter();

//  inner query
$sqlSalesRepTotal = $db->select()
        ->from(array('ps' => 'profile'))
        ->joinLeft(array('xbp' => 'xref_store_profile_brand'), 'xbp.profile_id = ps.profile_id')
        ->where('xbp.brand_id = b.brand_id')
        ->where('ps.role = ?', 'salesrep')
        ->where('xbp.store_id IS NULL');

//  main query
$sql = $db->select()
        ->from(array('b' => 'brand'), array(
            //  NOTE: have to add parentesis around the expression
            'salesrepTotal' => new Zend_Db_Expr("($sqlSalesRepTotal)")
        ))
        ->where('....')
        ->group('brand_id');


//  debug
var_dump($db->fetchAll($sql));



  1. Subqueries vs joins

  2. Boolean Field i Oracle

  3. Hur man förbättrar frågeprestanda med många JOINs

  4. Oracle SQL - Identifiera sekventiella värdeintervall