Heim > Datenbank > MySQL-Tutorial > Wie verbinde ich mehrere Tabellen in einer einzigen SQLAlchemy-Abfrage?

Wie verbinde ich mehrere Tabellen in einer einzigen SQLAlchemy-Abfrage?

DDD
Freigeben: 2024-12-30 10:45:11
Original
998 Leute haben es durchsucht

How to Join Multiple Tables in a Single SQLAlchemy Query?

Verknüpfungen für mehrere Tabellen in einer einzigen SQLAlchemy-Abfrage

In SQLAlchemy können Sie durch das Verknüpfen von Tabellen Daten aus mehreren verbundenen Tabellen in einer einzigen kombinieren Ergebnissatz. Dies kann nützlich sein, wenn Sie Daten über Tabellen hinweg abfragen müssen, die Beziehungen haben, beispielsweise ein Benutzer mit mehreren Dokumenten.

Um mehrere Tabellen mit SQLAlchemy zu verknüpfen, können Sie die Methode „join()“ verwenden. Diese Methode benötigt zwei Argumente: Das erste Argument ist die Zieltabelle und das zweite Argument ist die Bedingung, die angibt, wie die Tabellen verknüpft werden.

Betrachten Sie beispielsweise die folgende Tabellenstruktur:

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"))
Nach dem Login kopieren

Um alle Dokumente und Berechtigungen für einen Benutzer mit der E-Mail-Adresse „[email protected]“ abzufragen, können Sie die folgende Abfrage verwenden:

q = session.query(
         User, Document, DocumentPermissions,
    ).filter(
         User.email == Document.author,
    ).filter(
         Document.name == DocumentPermissions.document,
    ).filter(
        User.email == 'someemail',
    ).all()
Nach dem Login kopieren

Diese Abfrage führt eine Verknüpfung zwischen den durch Benutzer-, Dokument- und DocumentsPermissions-Tabellen, die die Ergebnisse filtern, um nur Dokumente einzuschließen, die vom Benutzer mit der E-Mail-Adresse „someemail“ erstellt wurden. Das Ergebnis ist eine Liste von Tupeln, die die Benutzer-, Dokument- und Berechtigungsdaten enthalten.

Das obige ist der detaillierte Inhalt vonWie verbinde ich mehrere Tabellen in einer einzigen SQLAlchemy-Abfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage