Найти - Пользователи
Полная версия: Группировка выборки в SQLALchemy
Начало » Базы данных » Группировка выборки в SQLALchemy
1
Ziberbulger
Здавствуйте, никак не могу разобраться в одной тонкости sqlAlchemy …
пусть есть две “абстрактные” модели

class A(Declarative):
__tablename__ = u'a'
id = Column(Integer, Sequence(u'a_id_seq'), primary_key=True, unique=True, nullable=False)
title = Column(Unicode)
b = Column(Integer, ForeignKey(u'b.id'), nullable=False, index=True)

class B(Declarative):
__tablename__ = u'b'
id = Column(Integer, Sequence(u'b_id_seq'), primary_key=True, unique=True, nullable=False)
title = Column(Unicode)
предположим, есть одна запись класса B и 3 записи ссылающихся на нее класса A

если выбирать через JOIN то результат будет типа :
[(<B object at 0x1>, <A object at 0x2>), (<B object at 0x1>, <A object at 0x3>), (<B object at 0x1t>, <A object at 0x4>)]
как получить результат типа:
[(<B object at 0x1>, (<A object at 0x2>, <A object at 0x3>, <A object at 0x4>))]
Конечно, можно сначала выбирать все B и потом в for-цикле цеплять к ним подходящие A, но это дополнительные запросы. Логика и интуиция подсказывает, что есть более правильный вариант. Помогите найти его, пожалуйста.

П.С.
Касательно реального вопроса использую:
СУБД - PostgreSQL
sqlalchemy: 0.6.8
pyuser
почитайте документацию
Ziberbulger
Спасибо за наводку!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB