> 데이터 베이스 > MySQL 튜토리얼 > 단일 SQLAlchemy 쿼리에서 여러 테이블을 조인하는 방법은 무엇입니까?

단일 SQLAlchemy 쿼리에서 여러 테이블을 조인하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-30 10:45:11
원래의
992명이 탐색했습니다.

How to Join Multiple Tables in a Single SQLAlchemy Query?

단일 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿