mysql - 从两个表中连接选择

标签 mysql django python-3.x django-models

我正在使用 Djangomysql 数据库。

我有一个表Question,其中包含以下字段:id、text、section_id,并且我有一个表CompletedQuestion,其中包含以下字段: id, Question_id 其中字段 question_idQuestion.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/

相关文章:

如果没有票,mysql JOIN 不选择答案

python - 如何在可重写的类方法上使用装饰器

jquery - 为什么我的 jquery ajax 发布到 django View 总是导致错误回调执行

python - sqlalchemy.orm.exc.UnmappedInstanceError : Class 'builtins.NoneType' is not mapped

python - 在python中通过json递归

php - 使用 SELECT 查询 mysql 时出现错误结果 "ID"

php - 在 Laravel 中使用带有 OUT 参数的存储过程

python - 如何在Django模板中使用objects.filter(user=request.user)?

python - 将嵌套的 json 插入到 Postgres 中的列中

php - Laravel 5.3 失败时自动连接到另一个数据库