Cita:   
yo la tengo planteada de esta maneraSELECT DISTINCT "r"."id_rol", "r"."nombre", "rp"."persona" 
FROM "rol" AS "r" LEFT JOIN "persona_rol" AS "rp"
ON r.id_rol=rp.rol AND (rp.persona='per-121')
WHERE (r.estado='Activo')
ORDER BY "rp"."persona" ASC
 FROM "rol" AS "r" LEFT JOIN "persona_rol" AS "rp"
ON r.id_rol=rp.rol AND (rp.persona='per-121')
WHERE (r.estado='Activo')
ORDER BY "rp"."persona" ASC
Código PHP:
   public function findAllNotAsigned1($persona) {
        $results = array();
        $db = $this->getAdapter ();
        $select = $db->select ();
        $select->distinct(TRUE);
        $select->from ( array ('r' => 'rol' ), array ('id_rol', 'nombre' ) );
        $select->joinLeft( array ('rp' => 'persona_rol' ), 'r.id_rol=rp.rol AND rp.persona="'.$persona.'"',array('persona') );
//        $select->where ( 'rp.persona=?', $persona );
        $select->where ( 'r.estado=?', 'Activo' );
        $select->order ( 'rp.persona' );
        echo $select->__toString();
        $results = $db->fetchAll ( $select );
        return $results;
    } 
    Código HTML:
 exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[42703]: Undefined column: 7 ERROR: 
column "per-105" does not exist LINE 2: ...na_rol" AS "rp" ON r.id_rol=rp.rol AND rp.persona="per-105" ... ^' in D:\MobiusWS\Quantum\library\Zend\Db\Statement\Pdo.php:238 Stack trace: #0 D:\MobiusWS\Quantum\library\Zend\Db\Statement.php(283): Zend_Db_Statement_Pdo->_execute(Array) #1 D:\MobiusWS\Quantum\library\Zend\Db\Adapter\Abstract.php(433): Zend_Db_Statement->execute(Array) #2 D:\MobiusWS\Quantum\library\Zend\Db\Adapter\Pdo\Abstract.php(230): Zend_Db_Adapter_Abstract->query(Object(Zend_Db_Select), Array) #3 D:\MobiusWS\Quantum\library\Zend\Db\Adapter\Abstract.php(644): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Select), Array) #4 D:\MobiusWS\Quantum\application\default\models\RolModel.php(62): Zend_Db_Adapter_Abstract->fetchAll(Object(Zend_Db_Select)) #5 D:\MobiusWS\Quantum\application\default\controllers\UsermanagerController.php(92): RolModel->findAllNotAsigned1('per-105') #6 D:\MobiusWS\Quantum\library\Zend\Controller\Action.php(503): UserManagerController->editarAction() #7 D:\MobiusWS\Quantum\library\Zend\Controller\Dispatcher\Standard.php(285): Zend_Controller_Action->dispatch('editarAction') #8 D:\MobiusWS\Quantum\library\Zend\Controller\Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(    
 
 

 multiples condiciones en join usando zend framework
 multiples condiciones en join usando zend framework 
 
  entonces no creo que el error sea exactamente de Zend, si no del driver que usas de fondo, si te fijas, la excepción viene del driver, prueba ejecutar directamente la consulta usando Zend_Db, o más abajo usando PDO y ve si la ejecuta, si la ejecuta es probable que sea un bug de Zend FW, y lo puedes reportar.
 entonces no creo que el error sea exactamente de Zend, si no del driver que usas de fondo, si te fijas, la excepción viene del driver, prueba ejecutar directamente la consulta usando Zend_Db, o más abajo usando PDO y ve si la ejecuta, si la ejecuta es probable que sea un bug de Zend FW, y lo puedes reportar. Respuesta: multiples condiciones en join usando zend framework
 Respuesta: multiples condiciones en join usando zend framework  
 
