パート
.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を確認するための単一のクエリ。