[Twisted-Python] enterprise.row and two-way relationships
Ken Kennedy
kkennedy at abelard.kenzoid.com
Sun Oct 20 12:50:58 MDT 2002
On Sat, Oct 19, 2002 at 06:21:32PM -0500, Justin Ryan wrote:
> Hello..
>
> To solve this problem, I've got a 'rel' table which keeps relationships
> between account ids and contact ids, so if I want all of the contacts
> for account x I simply pull all of the rows out of the 'rel' table whose
> accountId is x, and then individually step through them and extract the
> contacts with the corresponding accountIds..
>
> I don't think there is a problem with the way I'm doing this, or a
> better way to do this (though I'd be tickled if someone could point me a
> better way), but in any case there does not seem to be an (obvious) way
> to handle this with RowObjects..
It's a little unclear, but the "pull all of the rows out..and then
individually step through them" seems to suggest you're making two
queries to the db. If that's the case,then yeah, there's a better
way. If you know the accountID (from some previous query), just join
rel to contacts:
"select contact_info from contacts inner join rel on (rel.contactid =
contacts.contactid) where rel.accountid = whatever"
If you only know account name info, use:
"select contact_info from
accounts inner join rel on (rel.accountid = accounts.accountid)
inner join
contacts on (contacts.contactid=rel.contactid)
where account.accountname = 'whatever'
"
Either way, you should be getting back what you need in one
query. Does that make sense?
Ken
More information about the Twisted-Python
mailing list