问题陈述:在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中得到相同的结果。
答案 0 :(得分:1)
这应该有效:
Product.objects.filter(class_id=1).exclude(class_content__in=Product.objects.filter(class_id=2).values_list('class_content', flat=True))
答案 1 :(得分:1)
lista = Product.objects.values('class_content').filter(class_id=2)
Product.objects.filter(class_id = 1).exclude(class_content__in=lista)