단일 SQLAlchemy 쿼리에서 여러 테이블에 대한 조인
SQLAlchemy에서 테이블을 조인하면 여러 관련 테이블의 데이터를 단일 테이블로 결합할 수 있습니다. 결과 집합. 이는 여러 문서를 보유한 사용자와 같이 관계가 있는 테이블 간에 데이터를 쿼리해야 할 때 유용할 수 있습니다.
SQLAlchemy를 사용하여 여러 테이블을 조인하려면 Join() 메서드를 사용할 수 있습니다. 이 메서드는 두 개의 인수를 사용합니다. 첫 번째 인수는 대상 테이블이고 두 번째 인수는 테이블 조인 방법을 지정하는 조건입니다.
예를 들어 다음 테이블 구조를 고려하세요.
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"))
이메일이 "[email protected]"인 사용자에 대한 모든 문서 및 권한을 쿼리하려면 다음 쿼리를 사용할 수 있습니다.
q = session.query( User, Document, DocumentPermissions, ).filter( User.email == Document.author, ).filter( Document.name == DocumentPermissions.document, ).filter( User.email == 'someemail', ).all()
이 쿼리는 User, Document 및 DocumentsPermissions 테이블을 조인하여 이메일 "someemail"을 사용하는 사용자가 작성한 문서만 포함하도록 결과를 필터링합니다. 결과는 사용자, 문서 및 권한 데이터를 포함하는 튜플 목록입니다.
위 내용은 단일 SQLAlchemy 쿼리에서 여러 테이블을 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!