On Nov 27, 2007, at 11:51 PM, kris wrote:
> > > I tried > > names.select (exists ([names.c.id], > and_(names.c.id == obj_tags.c.name_id, > obj_tags.c.parent_id==Taggable.c.id , > Taggable.c.id == query.compile() ) > however, I am getting too many fields back with the error > "subquery must return only one column" > > Any suggestion on how to ask for only the id column? >> oh, well yeah now it will get slightly more tricky. you can pull out the "WHERE" criterion by itself using query._criterion, but that wont give you the joins anything else, i.e. select([mytable.c.somecolumn], query._criterion).as_scalar() if you have joins in there as well, you can get them like: select([mytable.c.somecolumn], query._criterion, from_obj=query._from_obj).as_scalar() im not sure at the moment how/if this particular kind of operation would be a regular query method....maybe query.generate_select() or something.. also as_scalar() wraps the select in a "scalar-holding" object that makes it act like a single column in expressions. its not entirely needed but can be helpful. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to [email protected] 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 -~----------~----~----~----~------~----~------~--~---
