Django: поддерживает ли ORM оператор SQL "IN"? Поддерживает ли ORM Django SQL-оператор IN? Что-то вроде: SELECT * FROM user WHERE id IN (1, 5, 34, 567, 229) Как я могу использовать ORM Django для создания такого запроса? Спасибо. Ответ 1 in User.objects.filter(id__in=[1, 5, 34, 567, 229]) print _.query SELECT <fields> FROM "auth_user" WHERE "auth_user"."id" IN (1, 5, 34, 567, 229) Ответ 2 как указывает Yuji выше < field_name > __ in = [< list_of_values > ], переводится в следующий SQL: WHERE < field_name > IN (< list_of_values > ) вы можете найти полное описание операторов django SQL WHERE в разделе Поиск в поле в следующем документе API Django. https://docs.djangoproject.com/en/1.9/ref/models/querysets/ Ответ 3 Кроме того, Django ORM также поддерживает подзапрос: Например: from django.db.models import Subquery users = User.objects.all() UserParent.objects.filter(user_id__in=Subquery(users.values('id')))
Ответ 1 in User.objects.filter(id__in=[1, 5, 34, 567, 229]) print _.query SELECT <fields> FROM "auth_user" WHERE "auth_user"."id" IN (1, 5, 34, 567, 229)
Ответ 2 как указывает Yuji выше < field_name > __ in = [< list_of_values > ], переводится в следующий SQL: WHERE < field_name > IN (< list_of_values > ) вы можете найти полное описание операторов django SQL WHERE в разделе Поиск в поле в следующем документе API Django. https://docs.djangoproject.com/en/1.9/ref/models/querysets/
Ответ 3 Кроме того, Django ORM также поддерживает подзапрос: Например: from django.db.models import Subquery users = User.objects.all() UserParent.objects.filter(user_id__in=Subquery(users.values('id')))