sql >> Database teknologi >  >> RDS >> Mysql

Django-forespørgsel, hvor et felt er dublet, og et andet er anderledes

Du kan arbejde med en underforespørgsel her, men det betyder ikke meget i forhold til ydeevnen, tror jeg:

from django.db.models import Exists, OuterRef, Q

UserNames.objects.filter(
    Exists(UserNames.objects.filter(
        ~Q(user_id=OuterRef('user_id')),
        first_name=OuterRef('first_name')
    ))
)

eller før :

from django.db.models import Exists, OuterRef, Q

UserNames.objects.annotate(
    has_other=Exists(UserNames.objects.filter(
        ~Q(user_id=OuterRef('user_id')),
        first_name=OuterRef('first_name')
    ))
).filter(has_other=True)

Vi beholder således UserNames objekter, for hvilke der findes en UserNames objekt med samme first_name , og med en anden user_id .




  1. Ændring af et Enum-felt ved hjælp af Alembic

  2. SQL:Vælg poster, hvor ALLE sammenføjede poster opfylder en betingelse

  3. Indsættelse af SQL Server-data i Salesforce med en markør

  4. Tilføjelse af flere parameteriserede variabler til en database i c#