【发布时间】:2020-03-13 10:51:51
【问题描述】:
如果棒球运动员在一场比赛中出场一次或多次,他就会参加比赛。因此,要计算一名球员参加的比赛数量,您需要计算该球员出场的一局比赛。
这是我的模型:
class Player(models.Model):
...
class Game(models.Model):
...
class Inning(models.Model):
game = models.ForeignKey(Game, on_delete=models.CASCADE)
class Appearance(models.Model):
inning = models.ForeignKey(Inning, on_delete=models.CASCADE)
player = models.ForeignKey(Player, on_delete=models.CASCADE)
实现我想要的SQL查询是:
SELECT COUNT(*)
FROM games_game
WHERE id IN (SELECT game_id
FROM innings_inning
WHERE id IN (SELECT inning_id
FROM appearances_appearance
WHERE player_id = 1))
如果不使用 Raw SQL,我如何在 Django 中做到这一点?
请注意,这是针对 PlayerDetailView 的,因此我只需要将它用于单个 Player 对象。
【问题讨论】:
标签: sql django django-models