Onderdeel
.query(Workflow.user_id, func.count(Log.id))
voegt zowel Workflow
. toe en Log
op uw vraag. Het eerste model is gemarkeerd als primaire tabel en andere zijn gemarkeerd als secundair. Als er geen aanroepen zijn naar .join()
daarna worden zowel primaire als secundaire tabellen toegevoegd aan de FROM
clausule. Als er aanroepen zijn naar .join()
het zal de tafel die het ontvangt verplaatsen naar de JOIN
clausule. Het belangrijkste hier is dat .join()
kan alleen worden toegepast op de secundaire tabel.
Het probleem is dat uw oproep aan
.join(Workflow, Workflow.id == Log.workflow_id)
probeert de primaire tabel als samengevoegd te markeren. Om het probleem op te lossen, moet je lid worden van de secundaire tabel:
.join(Log, Workflow.id == Log.workflow_id)
U kunt echo=True
toevoegen
om SQL te zien die is gegenereerd door SQLAlchemy. Het is erg handig om uw vragen te debuggen. Of je kunt compileren
enkele query om gegenereerde SQL te zien.