On Sat, Jul 03, 2010 at 11:53:00AM +0200, Till Maas wrote: > class PackageUpdate(SQLObject): > title = UnicodeCol(notNone=True, alternateID=True) > builds = RelatedJoin("PackageBuild")# > > class PackageBuild(SQLObject): > nvr = UnicodeCol(notNone=True, alternateID=True) > package = ForeignKey('Package') > updates = RelatedJoin("PackageUpdate") > > class Package(SQLObject): > name = UnicodeCol(alternateID=True, notNone=True) > builds = MultipleJoin('PackageBuild', joinColumn='package_id') > > > This does not work,
This declarations don't work? Or some code that uses them? > but I cannot find any hint how I can use SQLObject to > get all package updates that contain builds for a certain package. > A SQL query would look like this: > > SELECT package_update.title > FROM package_update, package_build_package_update, package_build, package > WHERE package_update.id = package_build_package_update.package_update_id > AND package_build.id = package_build_package_update.package_build_id > AND package_build.package_id = package.id > AND package.name = "bash"; MultipleJoin works together with a corresponding ForeignKey. .select() doesn't take them into account. So either you iterate over Packages row by row and use .builds attribute of every row, or construct the query manually (and pass it to .select() call), or patch SQLObject so it understands joins better (and submit your patches for review). Oleg. -- Oleg Broytman http://phd.pp.ru/ p...@phd.pp.ru Programmers don't die, they just GOSUB without RETURN. ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ sqlobject-discuss mailing list sqlobject-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss