sqlalchemy: como juntar várias tabelas por uma consulta?

Tenho as seguintes classes mapeadas SQLAlchemy:

class User(Base):
    __tablename__ = 'users'
    email = Column(String, primary_key=True)
    name = Column(String)

class Document(Base):
    __tablename__ = "documents"
    name = Column(String, primary_key=True)
    author = Column(String, ForeignKey("users.email"))

class DocumentsPermissions(Base):
    __tablename__ = "documents_permissions"
    readAllowed = Column(Boolean)
    writeAllowed = Column(Boolean)

    document = Column(String, ForeignKey("documents.name"))

Preciso obter uma tabela como esta parauser.email = "[email protected]":

email | name | document_name | document_readAllowed | document_writeAllowed

Como isso pode ser feito usando uma solicitação de consulta para SQLAlchemy? O código abaixo não funciona para mim:

result = session.query(User, Document, DocumentPermission).filter_by(email = "[email protected]").all()

Obrigado

questionAnswers(5)

yourAnswerToTheQuestion