sql >> Database >  >> RDS >> PostgreSQL

SQLAlchemy-query toont fout Kan tabel/selecteerbare 'workflows' niet aan zichzelf koppelen

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.



  1. Query invoegen in Oracle:ongeldige tabelnaam

  2. Een MySQL-database beheren in cPanel met PHPMyAdmin

  3. hoe mysql-query te optimaliseren als ik te veel OR-operators in mijn query heb?

  4. mysql naar php naar xml toont lege leeftijd