不知道如何在Django中完成此操作。在Django中用多个连接对同一个表进行左连接查询
型号:
class LadderPlayer(models.Model):
player = models.ForeignKey(User, unique=True)
position = models.IntegerField(unique=True)
class Match(models.Model):
date = models.DateTimeField()
challenger = models.ForeignKey(LadderPlayer)
challengee = models.ForeignKey(LadderPlayer)
想查询以获得关于一个球员的所有信息在一杆,包括对他们,他们已发出任何质疑或挑战。这个SQL工作:
select lp.position,
lp.player_id,
sc1.challengee_id challenging,
sc2.challenger_id challenged_by
from ladderplayer lp left join challenge sc1 on lp.player_id = sc1.challenger_id
left join challenge sc2 on lp.player_id = sc2.challengee_id
它返回这样的事情,如果球员3已经挑战玩家2:
position player_id challenging challenged_by
---------- ---------- ----------- -------------
1 1
2 2 3
3 3 2
不知道如何在Django ORM做....没有办法做到这一点?
无论如何,他应该能够使用Django ORM进行查询。但它仍然是一个很好的建议:) – desfido 2010-11-02 15:44:24