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()
이것은 쿼리:
이 쿼리를 실행하면 단일 요청으로 세 개의 관련 테이블에서 모든 관련 정보를 효율적으로 검색하여 지정된 사용자와 관련된 데이터에 대한 포괄적인 보기를 제공할 수 있습니다.
위 내용은 SQLAlchemy에서 여러 테이블(사용자, 문서, 권한)을 효율적으로 조인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!