通过外键在SQLObject中按另一个表的字段排序

1 投票
1 回答
661 浏览
提问于 2025-04-15 14:16

有没有办法通过另一个表的值来对SQLObject返回的结果进行排序?

我有两个表:

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

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

我想要根据它们关联的barname来对foo进行排序。

如果这样做:

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

...会根据bar的ID来排序输出,但我该如何根据bar的名字来排序呢?

1 个回答

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

顺便说一下,我是SQLObject的当前维护者。我不常去stackoverflow.com;是我的朋友告诉我这个问题的。如果你对SQLObject还有更多问题,欢迎你加入SQLObject邮件列表

撰写回答