On Sunday, May 27, 2018 at 1:27:28 PM UTC-4, Nicolas Hiblot wrote:
>
> Just for Information 
>
> This request works perfectly but in 2 lines .... 
>
>     lastUserLogged  = 
> db(db.auth_event.description.contains('connect')).select(orderby=~db.auth_event.time_stamp,limitby=(0,
>  
> 1)).first().user_id
>     lastUserName    = db(db.auth_user.id == 
> lastUserLogged).select(db.auth_user.username).first().username
>

If you don't mind having a second select, the above can be achieved with a 
recursive 
select 
<http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Recursive-selects>
:

query = db.auth_event.description.contains('connect')
username = db(query).select(db.auth_event.user_id,
                            orderby=~db.auth_event.time_stamp,
                            limitby=(0, 1)).first().user_id.username

This is probably fine given that you are selecting only a single record. If 
you are selecting many records, recursive selects can become inefficient 
because you need an additional select for every single record. In that 
case, a more efficient alternative is a join 
<http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Inner-joins>
.

Anthony

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to