[pyar] sqlalchemy agrupar clausulas de where

Roberto Bozzacchi robbie en metasigno.com
Vie Ene 22 09:33:39 ART 2016


Puedes revisar la siguiente documentación:

http://docs.sqlalchemy.org/en/latest/core/tutorial.html

El 21 de enero de 2016, 20:02, Javier Marcon <javiermarcon en gmail.com>
escribió:

> Hola, No estoy encontrando la forma de poder agrupar los .filter con
> sqlalchemy. Por ejemplo quiero hacer una consulta con sqlalchemy que
> ejecute algo asi:
>
> """select distinct nombre, apellido, edad, estado_civil
> from usuarios
> where (nombre = 'jose' or apellido = 'mendez') and ((edad = 18 and sexo
> = 'M') or (edad = 15 and sexo = 'F'))
> and ((extract(day FROM cumleanios) = extract(day FROM
> 'yesterday'::timestamp)) AND
> (extract(month FROM cumleanios) = extract(month FROM
> 'yesterday'::timestamp)) AND
> (extract(year FROM cumleanios) = extract(year FROM
> 'yesterday'::timestamp))"""
>
> El tema es que al hacerlo con sqlalchemy de esta forma no me crea los
> agrupamientos (con parentesis) del where:
>
> dbs.query(Usuarios).distinct().filter(and_(or_(Usuarios.nombre=='jose',
> Usuarios.apellido='mendez'),
> or_(_and(Usuarios.edad==18, Usuarios.sexo=='M'), _and(Usuarios.edad==15,
> Usuarios.sexo=='F')),
> and_(func.day(Usuarios.cumleanios) == func.day(yesterday),
>                                         func.month(Usuarios.cumleanios)
> == func.month(yesterday),
>                                         func.year(Usuarios.cumleanios)
> == func.year(yesterday) ))).all()
>
>
> Esa forma de hacerlo no me crea la sentencia con los parentesis, me hace
> condiciones que tienen aand y or pero sin agruparlas con los parentesis.
> Alguien sabe como puedo hacerlo para que me agrupe con parentesis la s
> partes del where para que quede la sintaxis como quiero?
>
> Gracias,
>
> Javier.
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar




-- 

Robbie Bozzacchi
Metasigno Brain
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160122/67852e59/attachment-0001.html>


Más información sobre la lista de distribución pyar