0
以下のsqlをdjango orm呼び出しに翻訳することはできますか?またはraw SQLを使用する必要がありますか?任意の助けSQLをORM呼び出しに翻訳するのに助けが必要
おかげ
私のモデル:
class Parent(models.Model):
slug = models.SlugField()
class Child(models.Model):
slug = models.SlugField()
parent = models.ForeignKey('Parent')
value = models.CharField(max_length=128)
私のSQL:
select *
from parent as p
left join child as c on p.id = c.parent_id and c.slug in ('s0','s1','s2')
where p.id not in (select p.id
from parent as p
inner join child as c on p.id = c.parent_id and c.slug = 's3' and c.value = 'v3')
order by p.slug
おかげで、私はこの文は全く子どもを持たない親を返すことを疑いますしかし、私はこれらの両親も必要です... – akonsu
上記の更新を参照してください。 –
このクエリによって返された親から子を取得すると、追加のデータベースヒットが発生します。私が解決しようとしている問題は、しばしば "backwards select_related()"と呼ばれます。私は子供とその親(子供がいない両親を含む)を取得する必要があります。私が投稿したものまで。私はディクショナリなどを使用するWeb上のいくつかのソリューションを見ましたが、これらの関係を保存するために余分なメモリを使用するため、単に非効率的であることがわかりました... – akonsu