【发布时间】:2013-01-17 16:39:24
【问题描述】:
我试图弄清楚如何在 Django 中执行以下 sql join 语句,而无需仅使用原始 sql。有办法吗?
Select * from playertable, seasontable where player.id = season.player_id
这是我的模型。只是为了澄清,我在上述查询中使用缩写表名来澄清
class Player(models.Model):
name = models.CharField(max_length=200)
team = models.CharField(max_length=3)
position = models.CharField(max_length=3)
class PlayerSeason(models.Model):
player = models.ForeignKey(Player)
year = models.IntegerField()
games_played = models.IntegerField()
goals = models.IntegerField()
assists = models.IntegerField()
points = models.IntegerField()
plusminus = models.CharField(max_length=200)
pim = models.IntegerField()
ppg = models.IntegerField()
shg = models.IntegerField()
gwg = models.IntegerField()
otg = models.IntegerField()
shots = models.IntegerField()
shooting_percentage = models.DecimalField(max_digits=5, decimal_places=2)
toi = models.CharField(max_length=200)
sftg = models.DecimalField(max_digits=5, decimal_places=2)
face_off = models.DecimalField(max_digits=5, decimal_places=2)
我应该如何使用 Django QuerySet 做到这一点?
【问题讨论】:
-
您的季节模型在哪里?如果您想要一个赛季的所有球员,只需
season.player_set.all() -
您是否要在一个查询中查询所有球员和所有赛季?或者你想从一名球员那里得到他们的赛季?
-
我想获取与特定球员相关的所有赛季,然后将其放大,以便我可以对所有球员进行此操作
-
并且赛季模型被称为 PlayerSeason,很抱歉造成混乱
-
@F.C.把它放在一个答案中,我会把它给你,这正是我需要做的(见编辑)
标签: django django-models django-queryset