Bagian
.query(Workflow.user_id, func.count(Log.id))
menambahkan keduanya Workflow
dan Log
untuk permintaan Anda. Model pertama ditandai sebagai tabel primer dan yang lainnya ditandai sebagai sekunder. Jika tidak ada panggilan ke .join()
setelah itu, tabel primer dan sekunder akan ditambahkan ke FROM
ayat. Jika ada panggilan ke .join()
itu akan memindahkan tabel yang diterimanya ke JOIN
ayat. Yang penting di sini adalah .join()
hanya dapat diterapkan ke tabel sekunder.
Masalahnya adalah panggilan Anda ke
.join(Workflow, Workflow.id == Log.workflow_id)
mencoba menandai tabel utama sebagai bergabung. Untuk memperbaiki masalah, Anda harus bergabung dengan tabel sekunder:
.join(Log, Workflow.id == Log.workflow_id)
Anda dapat menambahkan echo=True
untuk melihat SQL yang dihasilkan oleh SQLAlchemy. Sangat mudah untuk men-debug kueri Anda. Atau Anda dapat mengkompilasi
kueri tunggal untuk melihat SQL yang dihasilkan.