【问题标题】:Django: how to query multiple fields in multiple tablesDjango:如何查询多个表中的多个字段
【发布时间】:2014-10-10 04:24:19
【问题描述】:

我知道以下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'

【问题讨论】:

  • 请显示您的模型,而不是 SQL。
  • 你可以result = Results.objects.get(year_id=some_id)(没有测试这个)然后result.yearresult.race(同样没有测试我的sn-ps但是类似的东西应该可以)如果你需要一个更完整的例子请告诉我

标签: python mysql sql django


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 2020-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多