2010-08-09 2 views
1

У меня есть эти классы:Чтобы выбрать несколько столбцов в некоторых таблицах, связанных

class Channel(rdb.Model): 
    rdb.metadata(metadata) 
    rdb.tablename("channels") 

    id = Column("id", Integer, primary_key=True) 
    title = Column("title", String(100)) 


    items = relationship("MediaItem", secondary=channel_items, order_by="MediaItem.titleView", backref="channels") 

class MediaItem(rdb.Model): 
    rdb.metadata(metadata) 
    rdb.tablename("media_items") 

    id = Column("id", Integer, primary_key=True) 
    title = Column("title", String(100)) 

class User(rdb.Model): 
    rdb.metadata(metadata) 
    rdb.tablename("users") 

    id = Column("id", Integer, primary_key=True) 
    name = Column("name", String(50)) 

    channels = relationship("Channel", secondary=user_channels, order_by="Channel.titleView", backref="users") 

MediaItem связан с каналом и канал связан с пользователем.

, если я хотел бы, чтобы выбрать несколько столбцов из элементов и каналов, я бы это сделать:

session = Session() 
result = session.query(Channel).join(Channel.items).values(Channel.title, Item.title) 

я получить экземпляр класса Channel с его позиций.

Моя проблема: я не знаю, как выбрать некоторые столбцы из User, Channel и Item. Как я могу сделать запрос, где, например, я могу выбрать свойство User.name и его каналы только с свойством Channel.title и элементами этих каналов только с свойством Item.title?

Заранее благодарен!

ответ

Смежные вопросы