不知道如何在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