Menyertai Berbilang Jadual dalam SQLAlchemy dengan Pertanyaan Tunggal
Untuk melaksanakan operasi gabungan komprehensif yang melibatkan berbilang jadual dalam SQLAlchemy, adalah penting untuk mengikuti a pendekatan khusus. Pertimbangkan kelas yang dipetakan SQLAlchemy yang disediakan:
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"))
Untuk mendapatkan semula hasil dalam format yang diingini untuk pengguna tertentu, ikut langkah berikut:
q = Session.query( User, Document, DocumentPermissions )
q.filter( User.email == Document.author )
q.filter( Document.name == DocumentPermissions.document )
q.filter( User.email == 'someemail' )
Dengan mengikuti pendekatan ini, ia menjadi mungkin untuk menyertai berbilang jadual dengan cekap menggunakan satu pertanyaan SQLAlchemy.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Query SQLAlchemy Tunggal Menyertai Berbilang Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!