Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2011 20:11:19

Ziberbulger
От:
Зарегистрирован: 2010-05-08
Сообщения: 76
Репутация: +  0  -
Профиль   Отправить e-mail  

Группировка выборки в SQLALchemy

Здавствуйте, никак не могу разобраться в одной тонкости 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



Отредактировано (Авг. 5, 2011 22:44:35)

Офлайн

#2 Авг. 6, 2011 02:37:13

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Группировка выборки в SQLALchemy

почитайте документацию



Офлайн

#3 Авг. 7, 2011 07:12:20

Ziberbulger
От:
Зарегистрирован: 2010-05-08
Сообщения: 76
Репутация: +  0  -
Профиль   Отправить e-mail  

Группировка выборки в SQLALchemy

Спасибо за наводку!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version