在 SQLAlchemy 中連接多個資料表
在 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"))
要擷取包含有關使用者的資訊的表,文檔,以及特定使用者的文件權限,可以使用以下查詢:
q = Session.query( User, Document, DocumentPermissions, ).filter( User.email == Document.author, ).filter( Document.name == DocumentPermissions.document, ).filter( User.email == 'someemail', ).all()
This查詢:
透過執行此查詢,您可以在單一請求中高效地從三個相關表中檢索所有相關信息,從而提供與指定用戶相關的數據的全面視圖。
以上是如何在 SQLAlchemy 中高效率聯結多個表(使用者、文件、權限)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!