Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melakukan Query SQLAlchemy Tunggal Menyertai Berbilang Jadual?

Bagaimana untuk Melakukan Query SQLAlchemy Tunggal Menyertai Berbilang Jadual?

Susan Sarandon
Lepaskan: 2024-12-28 17:06:10
asal
598 orang telah melayarinya

How to Perform a Single SQLAlchemy Query Joining Multiple Tables?

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"))
Salin selepas log masuk

Untuk mendapatkan semula hasil dalam format yang diingini untuk pengguna tertentu, ikut langkah berikut:

  1. Mulakan dengan menanyakan jadual yang diperlukan menggunakan fungsi pertanyaan:
q = Session.query(
    User, Document, DocumentPermissions
)
Salin selepas log masuk
  1. Mewujudkan hubungan antara jadual menggunakan kaedah penapis:
q.filter(
    User.email == Document.author
)
Salin selepas log masuk
  1. Sertakan perhubungan tambahan seperti yang diperlukan:
q.filter(
    Document.name == DocumentPermissions.document
)
Salin selepas log masuk
  1. Nyatakan keadaan penapisan berdasarkan yang dikehendaki e-mel pengguna:
q.filter(
    User.email == 'someemail'
)
Salin selepas log masuk
  1. Akhir sekali, laksanakan pertanyaan menggunakan kaedah semua untuk mendapatkan semula keputusan.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan