Сортировка по полю другой таблицы, на которую ссылается внешний ключ в 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.

Другие вопросы по тегам