Okay, I have another question related to this.

Now that I have max_order defined, I want to do a query on it (give me
the users whose max_order==5).  My code is

max_orders_by_user =
select([func.max(orders.c.order_id).label('order_id')],
group_by=[orders.c.user_id]).alias('max_orders_by_user')
max_orders = 
orders.select(orders.c.order_id==max_orders_by_user.c.order_id).alias('max_orders')
mapper(User,
       users,
       properties={
           'orders':relation(class_mapper(Order), backref='user'),
           'max_order':relation(mapper(Order, max_orders,
non_primary=True), uselist=False),
           'addresses':relation(mapper(Address, addresses), backref='user'),
       })

It seemed like if I labeled the column something unique in
max_orders_by_user, then I should be able to use that in select_by, a
la 
http://www.sqlalchemy.org/docs/datamapping.myt#datamapping_selectrelations_relselectby

So I changed that to max_order_id and tried
max_orders_by_user =
select([func.max(orders.c.order_id).label('max_order_id')],
group_by=[orders.c.user_id]).alias('max_orders_by_user')
max_orders = 
orders.select(orders.c.order_id==max_orders_by_user.c.max_order_id).alias('max_orders')
# mapper as above
session.query(User).select_by(max_order_id=5)

and got
sqlalchemy.exceptions.InvalidRequestError: Cant locate property named
'max_order_id'

I did get it to work with
session.query(User).select(max_orders.c.order_id==5, from_obj=[max_orders])

Is there a way to do this with select_by?

--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to