我正在使用 Django
和 mysql
数据库。
我有一个表Question
,其中包含以下字段:id、text、section_id
,并且我有一个表CompletedQuestion
,其中包含以下字段: id, Question_id
其中字段 question_id
是 Question.id
的外键。
我的models.py
包含:
class Question(mixins.OrdMixin, mixins.EqMixin, models.Model):
section = models.ForeignKey('Section',
on_delete=models.CASCADE,
related_name='owner')
text = models.TextField()
class CompletedQuestion(models.Model):
question = models.ForeignKey('Question',
on_delete=models.CASCADE,
related_name='question_source')
我想检查 CompletedQuestion
中是否有属于 Question
中特定 section_id
的已完成问题。
我当前的查询如下,但不正确:
quest_id = Question.objects.filter(section_id = section_id)
最佳答案
有一个 __isnull=True|False
过滤器,您可以使用它来检查是否存在任何相关模型,我不太明白您的意思,但类似于:
Question.objects.filter(section_id=section_id, question_source__isnull=False)
或者从另一个方向来,例如:
CompletedQuestion.objects.filter(question__section_id=section_id) \
.values_list("question_id",flat=True).distinct()
获取具有任何相关 CompletedQuestions 的问题 ID 列表
关于mysql - 从两个表中连接选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49010412/