> 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
>>> [email protected]
>>> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss