ホームページ > データベース > mysql チュートリアル > Django の ORM LEFT JOIN を使用してボランティアがいない部門を見つけるにはどうすればよいですか?

Django の ORM LEFT JOIN を使用してボランティアがいない部門を見つけるにはどうすればよいですか?

DDD
リリース: 2024-12-31 03:42:17
オリジナル
139 人が閲覧しました

How to Find Departments with No Volunteers Using Django's ORM LEFT JOIN?

LEFT JOIN Django ORM

ORM を使用したボランティアのいない部門のクエリ

Django オブジェクト リレーショナル マッピング (ORM) フレームワークを使用すると、次のことができます。いずれかのテーブルに一致する行がない場合でも、LEFT JOIN 操作を使用して複数のテーブルからデータを取得します。

ボランティアが割り当てられていない部門をクエリするには、次の方法を使用できます。

from django.db.models import OuterRef, Subquery

qs = Department.objects.filter(
    departmentvolunteer__isnull=OuterRef('pk')
).values_list('name', flat=True)
ログイン後にコピー

説明:

  • OuterRef クラスはプライマリを表します。現在のモデル インスタンスのキー。この場合、OuterRef('pk') は、Department モデルの主キーを参照します。
  • Subquery クラスは、Departmentvolunteer テーブルを表すサブクエリを作成するために使用されます。 isnull フィルターは、Departmentvolunteer テーブルに各部門に一致する行があるかどうかをチェックします。
  • フィルター メソッドは、Departmentvolunteer テーブルに一致する行がある部門をフィルターで除外するために使用されます。次に、values_list メソッドを使用して、一致する部門の名前フィールドのみを取得します。

このアプローチにより、モデル間の複数値の関係を拡張し、いずれかのモデルに一致がない場合でもデータを取得できます。テーブル

以上がDjango の ORM LEFT JOIN を使用してボランティアがいない部門を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート