通过外键在SQLObject中按另一个表的字段排序
有没有办法通过另一个表的值来对SQLObject返回的结果进行排序?
我有两个表:
class Foo(SQLObject):
bar = ForeignKey('Bar')
class Bar(SQLObject):
name = StringCol()
foos = MultipleJoin('Foo')
我想要根据它们关联的bar
的name
来对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邮件列表。