2010-08-09 51 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.title屬性的User.name屬性和它的頻道以及只有Item.title屬性的那些頻道的項目?

在此先感謝!

回答