2022年6月24日金曜日

Flask-SQLAlchemy でテーブルを結合して検索する方法

Flask-SQLAlchemy でテーブルを結合して検索する方法

概要

テーブル間は外部キー制約が必要です

環境

  • macOS 11.6.7
  • Python 3.10.2
  • Flask-SQLAlchemy 2.5.1

サンプルコード

def join_test(self,
              name: str,
              city: str):
    return User.query.join(Address).filter(Address.city == city,
                                           User.name == name).one()

join 構文を使うことで外部キー制約のあるテーブル同士を結合して検索することができます
filter 内ではどちらのテーブルに対しても条件を記載することができるようになります

最後に

クエリが複雑になるとスロークエリの原因にもなるので複雑な join は避けるようにしましょう

参考サイト

0 件のコメント:

コメントを投稿