On 4/7/08, Michael Bayer <[EMAIL PROTECTED]> wrote:
>  On Apr 7, 2008, at 4:54 PM, Tim Lesher wrote:
> > session
>  > .query(Action).filter(Action.task.has(Connection.caller==caller1))

> for this kind of thing, you're joining across three tables, so you can
>  put an extra join condition in the has():
>
>         filter(Action.task.has(and_(Connection.caller==caller1,
>  Task.connection_id==Connection.id)))
>
>  or do it with join():
>
>         
> query(Action).join('task').filter(Task.has(Connection.caller==caller1))
>
>  I have an intuitive sense that there should be some nice syntax to get
>  has() and any() to join across more tables but its not occuring to me
>  at the moment.

I'm confused -- this sample does correlate actions with tasks, but not
tasks with connections.  Intuitively it seems that X.has(Y) should
always add a clause to the the exists for y.y_id = x.y_id.  No?

-Jonathan

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