sorry for my bad sql, but where have u specified that link?
u should have something like
foo.filter( (Main.chidlid==Child.childid)
Child.othercolumn.in_('a', 'b', 'c') )
or
foo.join( child).filter( Child.othercolumn.in_('a', 'b', 'c') )
(warning: the exact syntax may or may not be this, do check)
On Tuesday 28 August 2007 22:58:11 Kirk Strauser wrote:
I have mappers configured for main and child, and those tables
are linked on main.childid=child.childid. How can I use in() to
get rows where child.othercolumn is in a list of values? I'd like
to do something like:
foo = session.query(MainTable).filter_by(customer='CUSTNAME')
foo = foo.filter(ChildTable.c.othercolumn.in_('bar', 'baz', 'qux'))
Or, even better, some variant on:
foo = session.query(MainTable).filter_by(customer='CUSTNAME')
foo = foo.filter(othercolumn in ('bar', 'baz', 'qux'))
When I try to do that, though, I get SQL like:
SELECT main.value AS main_value, main.childid AS main_childid,
child.childid AS child_childid, child.othercolumn AS
child_othercolumn
FROM testing.main, testing.child
WHERE child.othercolumn IN (%(child_othercolumn)s,
%(child_othercolumn_1)s, %(child_othercolumn_2)s) ORDER BY
main.value
which is really doing a cartesian join and never enforcing
main.childid=child.childid. Is there another way I should be
approaching this?
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---