PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kueri SQLAlchemy menunjukkan kesalahan Tidak dapat menggabungkan tabel/'alur kerja' yang dapat dipilih ke dirinya sendiri

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi dengan jumlah variabel parameter input

  2. Apakah tidak menggunakan NULL di PostgreSQL masih menggunakan bitmap NULL di header?

  3. Secara efisien menanyakan tabel deret waktu yang besar untuk satu baris setiap 15 menit

  4. Cara menjatuhkan satu kunci gabung saat menggabungkan dua tabel

  5. Penggabungan Koneksi dengan Pgbouncer di PostgreSQL 9.0