sql >> Database teknologi >  >> RDS >> PostgreSQL

SQLAlchemy-forespørgsel viser fejl Kan ikke forbinde tabel/valgbare 'arbejdsgange' til sig selv

Del

.query(Workflow.user_id, func.count(Log.id))

tilføjer både Workflow og Log til din forespørgsel. Den første model er markeret som primær tabel og andre er markeret som sekundær. Hvis der ikke er nogen opkald til .join() bagefter vil både primære og sekundære tabeller blive tilføjet til FROM klausul. Hvis der er kald til .join() den vil flytte tabellen den modtager til JOIN klausul. Det vigtige her er, at .join() kan kun anvendes på den sekundære tabel.

Problemet er, at dit opkald til

.join(Workflow, Workflow.id == Log.workflow_id)

forsøger at markere den primære tabel som sammenføjet. For at løse problemet skal du tilslutte dig den sekundære tabel:

.join(Log, Workflow.id == Log.workflow_id)

Du kan tilføje echo=True for at se SQL genereret af SQLAlchemy. Det er virkelig praktisk at fejlsøge dine forespørgsler. Eller du kan kompilere enkelt forespørgsel for at se genereret SQL.



  1. Manglende værdi for primær nøgle-id Doctrine Symfony2

  2. MySQL vs. JSON - Hvorfor?

  3. SELECT-sætning ved hjælp af sæt Algebra

  4. Tæl om en bruger har nået lånegrænsen