but what happens if i say:

q.select(or_(User.c.orders.items.item_name == 'item#4',  
User.c.orders.items.item_name == 'item #5'))

if we naively convert c.orders.items.item_name=='item #4' into  
"user.user_id=orders.user_id and orders.order_id=items.order_id and  
items.item_name='item #4", then the other clause for item #5  
generates into the same thing and you get an inefficient query.  i  
wonder also if some expressions above dont work correctly if the join  
conditions are repeated like that.

its still better to say:

        q.select(or_(Item.c.item_name == 'item#4', Item.c.item_name == 'item  
#5'), from_obj=[c.orders.items])

isnt it ?  (User.c.orders.items would be a synonym for query.join_via 
('orders', 'items'))


On Nov 9, 2006, at 12:38 AM, Michael Bayer wrote:

>
>
> On Nov 8, 2006, at 10:00 PM, Daniel Miller wrote:
>> q = session.query(User)
>> c = getcols(User)
>>
>> q.select(
>>     (c.addresses.street == 'some address') &
>>     (c.orders.items.item_name == 'item #4')
>> )
>>
>
> ohhhhhh, wow.  heh.   i had this discomfort with adding relationships
> to "c", but then you just wrapped up the whole mess of join_to/
> join_via into one consistent syntax there, didnt you.  youll notice
> in the docs for join_to/join_via theyre marked with "alpha
> API" (meaning I have been antsy with them anyway)....so this syntax
> is compelling.
>
> you have to pipe in more often Dan !
>
>
>
>
>
>
>
> >


--~--~---------~--~----~------------~-------~--~----~
 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