sql >> データベース >  >> RDS >> PostgreSQL

SQLAlchemyクエリにエラーが表示されますテーブル/選択可能な「ワークフロー」をそれ自体に結合できません

    パート

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



    1. 1つの行内で異なる値を一致させる

    2. php / mysqlの検索にタイプミス修正を実装するための最良の方法は何ですか?

    3. 結合テーブルからの単一行のフェッチ

    4. Mysqliは配列のn番目の行をフェッチします