consulta con join

8 views
Skip to first unread message

Patricio Cardenas

unread,
Jan 17, 2014, 10:11:10 AM1/17/14
to zend-framew...@googlegroups.com

Hola estimados
necesito ayuda he buscado por internet pero no encuentro como hacerlo


        $select = $this->tableGateway->getSql()->select();
        $select->join( array( 'list' => 'listadeprecios' ), 'list.servicios_id_servicio = servicios.id_servicio', array('precio_uf' => 'precio_uf', 'sucursales_id_sucursal' => 'sucursales_id_sucursal' ));
       
$select->join( array( 'dsp' => 'detalle_servicio_prestado' ), 'dsp.servicios_id_servicio = servicios.id_servicio AND dsp.avisos_id_aviso = 7' , array('cargado_id_aviso'=>'avisos_id_aviso','cargado_id_servicio' => 'servicios_id_servicio'),'left');

        $select->where(array('list.sucursales_id_sucursal' => 1 ));

        $select->where->isNull('dsp.avisos_id_aviso');
        $select->where->isNull('dsp.servicios_id_servicio');

        $select->order("servicios.id_servicio");


lo que esta con rojo es el problema no me reconoce esta consulta
como se puede agregar un where en un join eso estoy buscando

por favor

si me pueden dar alguna indicacion


gracias


gracias






--
Atte.

Patricio Cardenas Garay
PHP Developer
Cel : 78329819

www.pcgaray.com


Federico Cadierno | Oh!STUDIO

unread,
Jan 17, 2014, 10:52:45 AM1/17/14
to zend-framew...@googlegroups.com
patricio , yo pondria esta condicion AND dsp.avisos_id_aviso = 7 dentro del where y no dentro de la condicion del join, ya que en esta condicion vos evaluas los campos que unen ambas tablas, en cambio dsp.avisos_id_aviso = 7 es una condicion general del select


--
Has recibido este mensaje porque estás suscrito al grupo "Zend Framework-hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a zend-framework-hi...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a zend-framew...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/zend-framework-hispano.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.



--
Federico Cadierno
Web Developer
Oh!STUDIO
www.ohstudio.com.ar
+54 (341) 530 0932
Gtalk : federico...@ohstudio.com.ar

Patricio Cardenas

unread,
Jan 17, 2014, 10:59:04 AM1/17/14
to zend-framew...@googlegroups.com
estimado gracias por responder

la logica de la consulta obliga a que sea asi

ya que en el join solo traigo los servicios que sean del aviso o solicitud numero 7 que es una variable

entonces con esto filtro todos los servicios que no estan cargado para el id 7

en el where pregundo que triga solo los que estan null asi lo ago

es una logica media loca pero funciona

encontre la solucion de todas manegas por google sin para hasta que la encontre


        $select = $this->tableGateway->getSql()->select();
        $select->join( array( 'list' => 'listadeprecios' ), 'list.servicios_id_servicio = servicios.id_servicio', array('precio_uf' => 'precio_uf', 'sucursales_id_sucursal' => 'sucursales_id_sucursal' ));
        $select->join( array( 'dsp' => 'detalle_servicio_prestado' ), new \Zend\Db\Sql\Expression('dsp.servicios_id_servicio = servicios.id_servicio AND dsp.avisos_id_aviso = 7'), array(),'left');

        $select->where(array('list.sucursales_id_sucursal' => 1 ));
        $select->where->isNull('dsp.avisos_id_aviso');
        $select->where->isNull('dsp.servicios_id_servicio');
        $select->order("servicios.id_servicio");


asi se genera lo esperado

saludos



Reply all
Reply to author
Forward
0 new messages