按SQLObject中的外键引用的另一个表的字段进行排序

时间:2009-09-11 20:27:09

标签: python sorting sqlobject

是否可以将SQLObject返回的结果按另一个表的值进行排序?

我有两张桌子:

    class Foo(SQLObject):
        bar = ForeignKey('Bar')

    class Bar(SQLObject):
        name = StringCol()
        foos = MultipleJoin('Foo')

我希望foo按照与name相关的bar排序。

这样做的:

    foos = Foo.select().orderBy(Foo.q.bar)

...会根据bar的ID对输出进行排序,但如何按bar的名称对其进行排序?

1 个答案:

答案 0 :(得分:3)

下面是一个SQLObject维护者的答案(由于没有显示验证码,他自己发布了这个问题):

进行明确的加入:

foos = Foo.select(Foo.q.barID==Bar.q.id, orderBy=Bar.q.name)

这会生成一个查询:

SELECT foo.id, foo.bar_id FROM foo, bar WHERE ((foo.bar_id) = (bar.id)) ORDER BY bar.name

PS。我是SQLObject的当前维护者。我没有访问stackoverflow.com;我的一个朋友向我指出了这个问题。如果您对SQLObject有更多疑问,请邀请您加入SQLObject mailing list