On Thu, Jan 07, 2016 at 03:03:22PM +0000, Paul Otto Seidon <p.osei...@datec.at> 
wrote:
> Hi all,
> 
> this seems somehow related to a recent post asking about "querying for 
> foreign key". Here as well, I guess, tables have to be joined, but I 
> don't see how to pack this into a single ORDERBY clause.
> 
> The main table is Entry, which owns _status = ForeignKey( "Status"). 
> Status owns a field 'value' besides some other fields. Now I would like 
> the Entry rows I select by some other criterion (e.g. their priority) be 
> ordered by the value field of the Status of the Entry.
> 
> When I ORDERBY Status.q._value then SQLOBJECT correctly tells me, that 
> Entry doesn't own a _value field. All other combinations don't work 
> neither. 
> 
> This has to be done more SQL-ish, right?
> 
> Anyone willing to help me out here?

class Test1(SQLObject):
    name = StringCol()
    test2 = ForeignKey('Test2')

class Test2(SQLObject):
    age = IntCol()

Test2.createTable()
Test1.createTable()

test2_1 = Test2(age=0)
test2_2 = Test2(age=42)

Test1(name='1', test2=test2_1)
Test1(name='2', test2=test2_2)

print list(Test1.select(Test1.q.test2 == Test2.q.id, orderBy=Test2.q.age))

   Output:

SELECT test1.id, test1.name, test1.test2_id FROM test1, test2 WHERE 
((test1.test2_id) = (test2.id)) ORDER BY test2.age
[<Test1 1 name='1' test2ID=1>, <Test1 2 name='2' test2ID=2>]

> Cheers
> Paul

Oleg.
-- 
     Oleg Broytman            http://phdru.name/            p...@phdru.name
           Programmers don't die, they just GOSUB without RETURN.

------------------------------------------------------------------------------
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to