> for c in [Category.get(h).contacts for h in [1,3]]: > print c c will be a list of SelectResult objects. ie. [<SelectResults ...>, <SelectResults ...>]
I don't think this is what you want. What's the SQL you want? What are you trying to get here? -- Rick On Wed, 20 Jun 2007, Jim Steil wrote: > Rick: Thanks for the info, the SQLRelatedJoin has gotten me a step closer. > I've been doing some additional testing but am not confused about some more > things. > > If I do the following: > > x = Category.get(1) > for y in x.contacts: > print y > > I get a list of the contacts which is what I'd expect. However, if I do the > following.... > > for c in [Category.get(h).contacts for h in [1,3]]: > print c > > ....I get the SQL statement that is used to retrieve the data. Obviously, I > don't understand things at a lower level and don't know why I'm getting this > difference. Is there something obvious that I'm missing? By the way, I've > changed the RelatedJoin to SQLRelatedJoin in the Category and Contact > classes. > > -Jim > > > > Rick Flosi wrote: >> Update your join to use SQLRelatedJoin instead of just RelatedJoin to >> the the filter() function that I'm pretty sure is missing from RelatedJoin. >> >> Then you'd do something like: >> c = Category.get(1) >> c.contacts.filter(IN(Contact.q.id, [1,2,3])) >> >> >> On Tue, 19 Jun 2007, Jim Steil wrote: >> >> >>> I've got a Contact class: >>> >>> class Contact(SQLObject): >>> class sqlmeta: >>> style = Style(longID=True) >>> idName = 'contactId' >>> >>> customerNumber = IntCol() >>> coopId = IntCol() >>> companyName = UnicodeCol(length=50) >>> ... >>> categories = RelatedJoin("Category", >>> intermediateTable="contactCategory", >>> joinColumn="contactId", >>> >> otherColumn="categoryId") >> >>> and a Category class: >>> >>> class Category(SQLObject): >>> class sqlmeta: >>> style = Style(longID=True) >>> idName = 'categoryId' >>> >>> name = UnicodeCol(length=50) >>> description = UnicodeCol() >>> contacts = RelatedJoin("Contact", >>> >> intermediateTable="contactCategory", >> >>> joinColumn="categoryId", >>> >> otherColumn="contactId") >> >>> I've got 3 categories defined and want to get a list of the contacts >>> that belong to either Category 1 or Category 3. To do this with SQL, >>> I'd do the following: >>> >>> SELECT * FROM contact WHERE contactId IN (SELECT contactId FROM >>> contactCategory WHERE categoryId IN (1,3)) >>> >>> Is there a good sqlobject way to do this? >>> >>> -Jim >>> >>> >>> >> ------------------------------------------------------------------------ >> - >> >>> This SF.net email is sponsored by DB2 Express >>> Download DB2 Express C - the FREE version of DB2 express and take >>> control of your XML. No limits. Just data. Click to get it now. >>> http://sourceforge.net/powerbar/db2/ >>> _______________________________________________ >>> sqlobject-discuss mailing list >>> sqlobject-discuss@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss >>> >>> >> >> >> > > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ sqlobject-discuss mailing list sqlobject-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss