0
私は、テーブル内のノードによって表される以下の非常に単純なツリー構造があるとします。Django結合の2つの異なるテーブルから2つのフィールドを選択するにはどうすればよいですか?
class Nodes(models.Model):
name = models.CharField(max_length=50)
flags = models.CharField(max_length=50)
parent = models.ForeignKey('self')
私が知りたいのですがどのような私はジャンゴで次のSQL文をエミュレートする方法、ありますか?
SELECT parent.name, child.name
FROM Nodes as child
JOIN Nodes as parent ON child.parent == parent.id
WHERE parent.flags == 'STRING1' AND child.flags == 'STRING2';
私が得ている最も近い、非常に非効率です:
for parent in Nodes.objects.filter(flags='STRING1'):
for child in Nodes.objects.filter(flags='STRING2', parent=parent.id):
print parent.name, child.name
誰かがこのSQLクエリを実行するためのより良い方法がありますなら、私は理解するのに役立つことはできますか?
おかげで、
- B