0

問題の説明: DjangoAPIで次のクエリを実行します。

表:製品

田畑:

id  int   primary_key

class_id   int

class_content    CharField

各class_idには、複数のクラスコンテンツがあります。

2つの異なるクラスIDの場合、同じクラスコンテンツと異なるクラスコンテンツがあります。

2つの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で実行したいのですが、djangoAPIから同じ結果を引き出すことができませんでした。

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 に答える