-
単純な関連性のフィルタリング:
from sqlalchemy.orm import sessionmaker from models import User, BlogPost # SQLAlchemyセッションを作成 Session = sessionmaker(bind=engine) session = Session() # UserとBlogPostの関連性を持つ投稿をフィルタリング user = session.query(User).filter_by(username='John').first() filtered_posts = session.query(BlogPost).filter_by(author=user).all()
-
関連性の属性を使用したフィルタリング:
from sqlalchemy.orm import sessionmaker from models import User, BlogPost # SQLAlchemyセッションを作成 Session = sessionmaker(bind=engine) session = Session() # UserとBlogPostの関連性を持ち、特定の条件を満たす投稿をフィルタリング filtered_posts = session.query(BlogPost).join(User).filter(User.username == 'John', BlogPost.likes > 100).all()
-
関連性の逆参照を使用したフィルタリング:
from sqlalchemy.orm import sessionmaker from models import User, BlogPost # SQLAlchemyセッションを作成 Session = sessionmaker(bind=engine) session = Session() # BlogPostとUserの関連性を逆参照してフィルタリング filtered_posts = session.query(BlogPost).filter(BlogPost.author.has(User.username == 'John')).all()
これらの例では、User
とBlogPost
という2つのモデルを使用していますが、実際のコードでは適切なモデル名に置き換えてください。また、engine
はデータベースに接続するための適切なEngine
オブジェクトに置き換える必要があります。