Michael,
Thanks for the quick reply. The one thing I hadn't tried was doing a
separate join for each of the primary table joins and once I did that
it worked. It dawned on me this morning that I forgot to mention I was
using ORM syntax, but you got the answer out before I had a chance to
update the original post.
Thanks again,
- Eric

On Jan 27, 7:02 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
> On Jan 27, 2011, at 8:06 PM, Eric N wrote:
>
> > I'm trying to construct a query where in the from clause I would end
> > up with something like
> > SELECT foo
> > FROM table1 JOIN
> >           table2 ON table1.id1 = table2.id1 JOIN
> >           table3 ON table1.id1=table3.id1 JOIN
> >           table4 ON table2.id2=table4.id2 AND table3.id3=table4.id3
>
> > I have tried various join combinations but I can only get it to join
> > table4 to table2 or table 3, not both.
>
> the and_() function would be used as the onclause:
>
> from sqlalchemy import and_
>
> select = select.select_from(
>         table1.join(table2, table2.c.id1==table1.c.id1).\
>                 join(table3, table1.c.id1==table3.c.id1).\
>                 join(table4, and_(table2.c.id2==table4.c.id2, 
> table3.c.id3==table4.c.id3))
> )
>
> You didn't say if you were using ORM or expression language, that above is 
> expression language.  Same idea applies to ORM, use and_() in the ON clause.

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to