Сортировка по полю другой таблицы, на которую ссылается внешний ключ в 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
это идентификаторы, но как мне отсортировать их по bar
имя?
1 ответ
Ниже приведен ответ сопровождающего 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. Я не захожу на stackru.com; мой друг указал мне на вопрос. Если у вас есть дополнительные вопросы о SQLObject, я приглашаю вас в список рассылки SQLObject.