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.