[pyar] web2py - multiple left joins

Mariano Reingart reingart en gmail.com
Lun Jul 8 16:41:34 ART 2013


2013/7/8 Luciano Bovio <omicronvt en gmail.com>:
> Hola:
>
> Tengo un query a la db y quisiera usar 2 left joins, para lo cual hago algo
> así :
> results=db(db.tabla1).select(left=[db.tabla2.on(db.tabla1.campo2==db.tabla2.id),
> db.tabla3.on(db.tabla1.campo3=db.tabla3.id)])
>
> según el libro de web2py el left se puede pasar como un lista...
> pero no toma el left, de hecho aunque ponga 1 solo left y lo ponga entre [],
> ya deja de funcionar

A simple vista debería funcionarte el left como lista, pero quizas sea
otro tema.
En el select, deberías agregar db.tabla1.ALL para que te devuelva los
campos de esa tabla.
Fijate que en el segundo join (db.tabla1.campo3=db.tabla3.id) la
comparación debería ser un ==

Creo que quedaría:

results=db().select(db.tabla1.ALL,
left=[db.tabla2.on(db.tabla1.campo2==db.tabla2.id),
db.tabla3.on(db.tabla1.campo3==db.tabla3.id)])

Si el problema persiste, podrías adjuntar el contenido de db._lastsql
para ver que consulta está generando.

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com


More information about the pyar mailing list