Joindre plusieurs tables dans SQLAlchemy
Dans SQLAlchemy, la jonction de tables permet la combinaison de données de plusieurs entités liées. Pour illustrer cela, prenons l'exemple suivant :
Supposons que vous disposiez des classes mappées suivantes représentant les utilisateurs, les documents et les autorisations de documents :
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"))
Pour récupérer un tableau qui inclut des informations sur les utilisateurs, documents et les autorisations de document pour un utilisateur spécifique, vous pouvez utiliser la requête suivante :
q = Session.query( User, Document, DocumentPermissions, ).filter( User.email == Document.author, ).filter( Document.name == DocumentPermissions.document, ).filter( User.email == 'someemail', ).all()
Ceci requête :
En exécutant cette requête, vous pouvez récupérer efficacement toutes les informations pertinentes des trois tables associées en une seule requête, fournissant une vue complète des données relatives à l'utilisateur spécifié.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!