Я пытаюсь выполнить запрос, который работает на основе множества отношений между bmarks и тегами с помощью вторичной таблицы bmarks_tags.Запрос включает в себя несколько подзапросов, и мне нужно различить столбец.Позже я хочу присоединить это к другой таблице через идентификаторы DISTINCT.
Я пробовал несколько способов, и это кажется самым близким:
tagid = alias(Tag.tid.distinct())
test = select([bmarks_tags.c.bmark_id],
from_obj=[bmarks_tags.join(DBSession.query(tagid.label('tagid'))),
bmarks_tags.c.tag_id == tagid])
return DBSession.execute(qry)
Но я получаю ошибку:
⇝ AttributeError: '_UnaryExpression' object has no attribute 'named_with_column'
Кто-нибудь знает, как я могу выполнитьобъединение через bmarks_tags.tag_id и результат Tag.tid.distinct ()?
Спасибо
Схема:
# this is the secondary table that ties bmarks to tags
bmarks_tags = Table('bmark_tags', Base.metadata,
Column('bmark_id', Integer, ForeignKey('bmarks.bid'), primary_key=True),
Column('tag_id', Integer, ForeignKey('tags.tid'), primary_key=True)
)
class Tag(Base):
"""Bookmarks can have many many tags"""
__tablename__ = "tags"
tid = Column(Integer, autoincrement=True, primary_key=True)
name = Column(Unicode(255), unique=True)