パート
.query(Workflow.user_id, func.count(Log.id))
両方のWorkflowを追加します およびLog あなたの質問に。最初のモデルはプライマリテーブルとしてマークされ、他のモデルはセカンダリとしてマークされます。 .join()への呼び出しがない場合 その後、プライマリテーブルとセカンダリテーブルの両方がFROMに追加されます 句。 .join()への呼び出しがある場合 受信したテーブルをJOINに移動します 句。ここで重要なのは、.join() セカンダリテーブルにのみ適用できます。
問題は、
への呼び出しです.join(Workflow, Workflow.id == Log.workflow_id)
プライマリテーブルを結合済みとしてマークしようとします。問題を修正するには、セカンダリテーブルを結合する必要があります:
.join(Log, Workflow.id == Log.workflow_id)
echo=Trueを追加できます
SQLAlchemyによって生成されたSQLを確認します。クエリをデバッグするのは本当に便利です。または、コンパイル
することもできます 生成されたSQLを確認するための単一のクエリ。