0

问题陈述:在 Django API 中进行以下查询。

表:产品

领域:

id  int   primary_key

class_id   int

class_content    CharField

每个 class_id 都有多个类内容。

对于两个不同的类 id,有相同和不同的 class_content。

我想列出两个class_id之间的区别:

以下是我如何在原始 SQL 中创建查询:

例如:在 class_id = 1 和 class_id =2 之间产生差异

询问:

SELECT * FROM Product 

WHERE class_id = 1 && class_content NOT IN

(SELECT class_content FROM Product WHERE class_id = 2);

此查询工作正常,并给出了 class_id 1 和 2 之间的区别。我希望在 django 中执行此查询,我无法从 django API 中得出相同的结果。

4

2 回答 2

1

这应该有效:

Product.objects.filter(class_id=1).exclude(class_content__in=Product.objects.filter(class_id=2).values_list('class_content', flat=True))
于 2012-11-15T13:51:06.120 回答
1
lista = Product.objects.values('class_content').filter(class_id=2)
Product.objects.filter(class_id = 1).exclude(class_content__in=lista)
于 2012-11-15T13:51:28.977 回答