Django:如何查询多个表中的多个字段

时间:2014-08-16 19:37:09

标签: python mysql sql django

我知道以下SQL声明有效:

SELECT year_table.year_value, races.race_name, results.category,results.position 
FROM races, year_table, results
WHERE year_table.year_value = variable AND year_table.year_id = results.year_id;

您如何将此转换为Django查询语句?

这些是模型:

class YearTable(models.Model):
    year_id = models.IntegerField(primary_key=True)
    year_value = models.CharField(max_length=10, blank=True)
    class Meta:
        managed = False
        db_table = 'year_table'

class Races(models.Model):
    race_id = models.IntegerField(primary_key=True)
    race_name = models.CharField(max_length=50, blank=True)
    class Meta:
        managed = False
        db_table = 'races'

class Results(models.Model):
    year = models.ForeignKey('YearTable')
    race = models.ForeignKey(Races)
    category = models.CharField(max_length=100)
    position = models.CharField(max_length=10)
    class Meta:
        managed = False
        db_table = 'results'

1 个答案:

答案 0 :(得分:0)

您可以从结果中获取所有内容,并使用select_related加入其他模型。

results = Results.objects.all().select_related('year', 'race')